Unity is primarily the renderer and physics engine, everything else is really easy to just write yourself as c#, and unity in no way hinders your ability to write everything else in c#. If you want to change the renderer or physics engine then you have a problem, yes, but unity isn't for people who wants to customize the renderer or physics engine.