I think I see the issue here, the problem would be if someone mistype the initial path, instead of throwing exceptions and stopping, we would be creating a new path and probably hiding an error.
That can go the other direction too? A config could be created under /solr and then someone could try to join it by forgetting to specify that root in zkHost.
Only create the initial path when bootstrap_conf is true (or bootstrap_confdir).
As long as we need some sort of explicit bootstrap, that seems reasonable.
Add a new parameter to force creation, something like –DzkHost.create=true.
Anything that creates a skeleton layout of a new cluster should work the same (auto-create the rot if it doesn't exist). "ZkCLI -cmd bootstrap" for example. Not sure if there are others.