It’s not a project wide setting, you can use nanite on all objects which don’t utilize currently unsupported features only. It is also a simple checkbox in mesh settings so no setup time either.
Generaly you don’t need a lot of poly on objects that use opacity(something like densely perforated curtain etc) and in other cases like tree leaf you can use actual geometry instead of opacity map at no performance cost!
I actually tried using nanite on heavy tree model and even though this is really bad use, cause lots of tiny unconnected meshes(leaves) and lots of overlapping when you start packing trees together. It still provided massive boost…This is not smart use for game development for sure, but for isolated scenes and archviz purposes you can get away with a lot more.
So the benefits heavily outweight limitations and especially for people who are not in need for optimizing their projects for low end HW but instead want to use heavy cad data or scanned meshes for interactive presentations and rendering.
However this might not be possible for cycles but rather maybe for eevee in the future. Even though this is rasterizing, with the addition of raytracing and tech like lumen and nanite it would seem that pathtracing will soon be providing diminishing returns.
The cases where you’d switch from something like unreal to offline pathtracing are slowly disappearing. When it comes to realtime feedback you can see that people will gladly sacrifice a bit of quality and precission for the ability to work and render realtime. There are people even trying to use eevee for interior renderings when eevee doesn’t come close to features of unreal rendering.
So I’m pretty sure having raytracing, realtime gi and system like nanite in eevee even though with some limitations would push cycles to be used in only corner cases where eevee fails. And this would also bring a lot of people from unreal who don’t need all of the features of a game engine but want the rendering.