_ You could get lots of pre-made assets from the Unity store and cobble them together into some kind of 'game', but you'd be very limited in what you could do. Also more crucially you'd have diminishing returns as your project snowballs into a spaghettian nightmare, eventually becoming impossible to work on and unplayable for the bugs.
_ The whole writing a rendering engine in C++ and so on, isnt that big of a deal imo, its a solved problem say. The bane of any poorly composed software project is complexity, no matter what framework or engine you use, even Unity, you need clean code and a suitable architecture to make something complex and/or maintainable.
Unity is only "like putting together Lego blocks" in the sense that one very versatile brick and a few fairly trivial bricks are provided to you out of the box, but you'll still need to vacuum form your own set of specialized bricks for the rest of the game.
I am never one to say "don't reinvent the wheel". I think the phrase is universally used by malcontents to berate newbs. I think there is still a lot of value to be had in people starting new game engine projects. But if you want to make a game, rather than a game engine, you should probably be using Unity or Unreal. Making a game in Unity is absolutely a complex undertaking. Just not in the rendering shader code. Which is only a small part of any project.
They're planning to update to a newer version of C# and they will drop the other languages as a part of that update.
Used to be. For many small devs/hobbyists, it's a matter of clicking in Unity and not actually "writing" anything.
Writing your own game engine (esp. 3D engine) is complex and challenging. Building a game in Unity is like putting Lego pieces together in comparison.
Agree with your other points though.