whatever mechanism we may add for supporting something like this, the default if unspecified should definitely be an error ... if Solr is asked to index data it doesn't know what to do with it should complain, rather then silently ignoring it ... this will help people with typos in their schema or indexing code find their problems faster.
As for the proposed solutions: my initial reaction to reading the comments so far was to agree with Will: having an explicit true/false option makes it much cleraer to people reading the schema what's going on ... but in thinking about the possible use cases I prefer yonik's approach: leveraging the existing field/dynamcField syntax will allow people to not only say "any unknown field should be ignored" but also "field XXXX should be ignored" and "any unknown field that starts with S_* should be ignored"
(there's also the question as to hwat should happen if i did have a stored="true" dynamicField of "*" and i set ignoreUnnamedFields="true")
For the example config, we might want to do something like this to make it more obvious what's going on, and to serve as a recommended config style...
<!-- since fields of this type are by default not stored or indexed, any data added to
them will be ignored outright
<fieldtype name="ignored" stored="false" indexed="false" class="solr.StrField" />
<!-- ignore any fields that don't already match an existing field name or dynamic field -->
<dynamicField name="*" type="ignored" />