We could indeed fall back to peek and decode however right now the spec says:
Has all output values equal & above the 'dust' threshold (currently 0.00005430 BTC). An additional output is permitted for the remainder of the input (the 'change' address).
I have a feeling that allowing p&d on unequal output values might increase the risk of a change address being assigned as recipient address by accident.
I really want to catch human error whenever possible and support as many formats as possible but on the other hand when an error was clearly made it rather have it be invalidated then sent to the wrong address.
Can anybody think of a reason that could sway the argument one way or an other?