With a fix to bug 5932 in place, WebCore uses both its own and ICU's tables for charset names. There are a lot of redundant entries that should be removed (I'm not even sure if any aliases known to WebCore are missing from ICU). Also, ICU works directly with charset names, so it's unnecessary to convert them to CFStringEncodings and back.
Note that WebCore's lookup ignores case and all non-alphanumeric characters. So that if WebCore lists "UTF-8", then "u<t>f-8-" will also work. Since ICU does not have this property, we'd need to do something if we want to preserve this behavior.
(In reply to comment #1) ICU does something similar: it ignores case, dashes, spaces and underscores. Dunno whether ignoring other non-alphanumeric symbols is useful.
Charset handling has been refactored, this bug doesn't appear useful anymore.