key/value pairs: I think I agree, but having the thing being used most like as suggested fits better with the other methods. Nothing carved in stone yet, though
defaults. Once the API stabalized, I'll add them more clearly
auto-detect. Good thought. All auto-detection on, and disable with key/value options. I like that
lower case will be the default, but casing can be another option none/lc/uc/tc
auto_header? autoconfigure_from_header seems like getting to high an expectation level
BOM: yes, definitely
eol: no. though possible, it is useless, as readline will only read a line that already is covered by the default eol setting (undef)
quote: unreliable. will cause surprises
escape: unreliable. will cause surprises
allow_whitespace: possibly harmful. If the header contains spaces around the separators, it is likely the data will also have it, but that is not vice-versa.
allow_loose_quote: no (see allow_whitespace)
allow_loose_escapes: no (see allow_whitespace)
quote_empty: no, it is very unlikely a header contains empty fields. If it does, using this new functionality will only cause more trouble than it is worth