I've been thinking about a related problem: reporting of what I'm calling "undeclared explicit fields".
In the schema, fields can be either <field> (aka concrete, aka explicit), or <dynamicField> (aka pattern, aka regex, aka prototype).
There is also a third kind of thing that can be introduced by a <copyField>: an undeclared explicit field (UEF). Here's an example from test-files/solr/collection1/conf/schema15.xml:
<field name="copyfield_source" type="string" indexed="true" stored="true" multiValued="true"/>
<dynamicField name="*_ss" type="string" indexed="true" stored="true" multiValued="true"/>
<copyField source="copyfield_source" dest="copyfield_dest_ss"/>
copyfield_dest_ss isn't declared anywhere else in the schema - this is an instruction to use the (first matching) dynamic field type *_ss when copying copyfield_source to UEF copyfield_dest_ss.
The schema.xml in solr/example has another one of these, though this could be rewritten to instead use dest="*_s" and still function the same:
<dynamicField name="*_s" type="string" indexed="true" stored="true" />
<copyField source="author" dest="author_s"/>
In my (so far limited ad hoc) testing, I can't see undeclared explicit fields in reported copyfield sources or destinations.
I think schema info reports (LukeRequestHandler and the new schema info requests I'm working on in
SOLR-3250) should include UEFs in their reports.