My rationale though is that we shouldn't need to do this by hand. It should be default behavior if paying a fee is the only valid way to make 100% sure that transactions are handled in a timely manor.
The hard-coded setting for "high priority" is just wrong (it is much too low for the number of free transactions competing to be included in blocks these days). The "smart fees" pull request fixes that, and will (by default) only send a transaction for free if it is pretty darn sure it will confirm quickly.