I like the idea. My comments:
- Take separators as a key/value pair so that as other auto-detectable features are added they can be configured as well.
- The auto-detectable features should have reasonable defaults (you have default separators, this is just formalizing that I agree it should be so, but add tab to the default separators).
- The auto-detectable features should be disableable (perhaps via something like no_eol => 1).
- Don't force lower-case.
- I'd suggest a more obnoxious name so that it is clear that it is a magical routine. Perhaps autoconfigure_from_header.
A quick skim of the documented options suggests the following candidates for auto-detection: BOM (encoding), eol, quote, escape_char, allow_whitespace (set only), allow_loose_quote (set only), allow_loose_escapes (set only), quote_empty. Several of those will be undeterminable from just the header (in which case should remain as default), but if detected should set the parameter.