If there is no specific reason for making it a Singleton, I'd vote for removing this so that the SolrCore(dataDir, schema) constructor could be used to instantiate multiple cores.
I agree with your arguments. However (although being new to Solr) there is more than one way to do it, I think.
To be more specific it seems that using several different indexes with individual datadirs and schemas is very useful, based on my impression that many enterprise users seem to want this functionality. It is not difficult to imagine such a usage pattern or implementation, in its abstract sense, of Solr for almost all uses.
However (and this is where most you guys should fill me in), it could be wasteful to run multiple complete instances. Could information be shared in some way between the instances to save on resources? Perhaps what I am really trying to say here, is that we have to look at the whole model when considering how to implement better support for the desired usage pattern outlined above.
Eivind