I'm not 100% sure how the list of sub languages are maintained, e.g. en-GB, en-AU definitely exist, but is en-SG valid and who decides? Those don't appear to be in that list, but I haven't researched how the sub tags work. Oddly en-GB-oed (grandfathered) and en-scouse (redundant) appear to be listed directly...
Short answer: the odd tags are there for historical reasons from before language tags were done the way they are now (old: single token; new: nearly unlimited composition of subtags); "grandfathered" ones can't be expressed/analysed identically in the new system (but many such tags have a "Preferred-Value" showing how they can be expressed differently) while "redundant" ones can be; en-AU is not in the list explicitly because it can be composed from the language subtag "en" and the region subtag "AU" that are in the list.
Long answer: see BCP 47 (e.g. http://www.rfc-editor.org/rfc/bcp/bcp47.txt ). Or email me and I'll share what I know, as this is something I'm interested in and have spent a bit of time on, but probably shouldn't be hashed out entirely in comments on this entry.
IETF language tags
Short answer: the odd tags are there for historical reasons from before language tags were done the way they are now (old: single token; new: nearly unlimited composition of subtags); "grandfathered" ones can't be expressed/analysed identically in the new system (but many such tags have a "Preferred-Value" showing how they can be expressed differently) while "redundant" ones can be; en-AU is not in the list explicitly because it can be composed from the language subtag "en" and the region subtag "AU" that are in the list.
Long answer: see BCP 47 (e.g. http://www.rfc-editor.org/rfc/bcp/bcp47.txt ). Or email me and I'll share what I know, as this is something I'm interested in and have spent a bit of time on, but probably shouldn't be hashed out entirely in comments on this entry.