We are trying to remove the IsStandard restrictions over time, adding more of them— especially ones that assume a particular value for a particular amount of coin, is entirely the wrong direction.
There is basically no boundary to the kinds of mistake poorly written node software can make. Perhaps they'll use a constant value as their DSA nonce— do you suggest we add code to screen for duplicate nonces on relay? Perhaps they'll use a 32 bit LCG to generate their private keys. Perhaps they'll confuse their main output and change output?
Brainwallet prefills the destination in the transaction make with an address. If you're using a system that copies on highlight then hilighting to erase the address will wipe out the address in your copy buffer and then you may paste the default back in without noticing it— It's a mistake I've made several times while screwing with the site, but I'd never use it for an actual transaction— shall we blacklist that default output?
Yes, I'm with you that arbitrary, hard-coded limitations are a almost always a bad thing to be avoided at all costs. Definitely not suggesting that the credit card examples above be considered for bitcoin, but I still think something like a fee > outputs check or similar shouldn't be ruled out entirely for some future implementation (it would prevent virtually all of these obvious errors). I can't really see any use case argument disallowing it, even for sacrificial tx's, since they might also be able to include an iterative output (back to the tx input) if necessary?
-
edit: It could be argued that existing enforcement of minimum fees is more arbitrary and poorly implemented (hard-coded) than anything suggested here!