https://github.com/ethereum/wiki/wiki/Subtleties says:
If a transaction triggers an exception, then:
* The value transfer from sender to recipient still takes place
* The fee transfer from sender to miner still takes place
* The entire STARTGAS is added to gas_used
* All other execution is reverted
Perhaps I am reading that wrong, the 'value transfer' is unclear now that you mention the gas cost. I read it as talking about actual transfers. Can anyone confirm?