Let's not forget, one doesn't need an engine to write a game, and a lot of games are written in a stand alone manner. There may be a bias in game engine forums because there are people who use game engines, but if you look at for instance gamedev.net there are a lot of people who brew their own frameworks, tailored to their needs, or none at all. Abstraction may be a nice thing, but it shouldn't be a purpose in itself, if that makes some sense.
Depending on the game of course, it might in the end be even more productive without an engine, because it takes a long time to get behind how a complex engine works, and how to make the most of it, how to bend the abstraction to one's will or adjust the will so that it fits into the abstraction, only to realise eventually that the corset said abstraction forces upon one needs too much adjustment, or isn't fit for the job.
In this case, rendering 10s of thousands of objects with instancing, using textures to modify individual instances, maybe in a dynamic manner, isn't a big deal on a lower level (C/C++/OpenGL4.5/Vulkan), but I doubt Godot has the right tools for this. I may be wrong, though, haven't tried in the engine.