1. What aspect of the rendering did you feel you didn't have control over with your own vertex, fragment, and compute shaders?
2. You can hook into most if not all of the physics internals by overriding Update() and FixedUpdate() functions.
Unity is definitely less flexible and powerful than rolling an AAA 3D engine and editor.. But that takes years, and 95% of the time there's a way to solve the problem in Unity.