The reason is probably that this is not the module's aim. If I were writing an SGML parser, I wouldn't add workarounds to deal with the commonly malformed HTML found out there on the web. Similarly, the
HTML::Parser module's docs note that it's not a generic SGML parser because it does include such kludges. In your case, I'd pass
Email::Valid the address and given failure, check if it's kludgable and possibly pass it back in for another check.
Makeshifts last the longest.