not the whole transaction that is signed. only the TxIns.
its like signing "i would like to give some btcs away"
The documentation is somewhat unclear. What gets signed is the entire transaction, with all the input scripts nulled except the one that is being signed, which is replaced by the output script it references containing the OP_CHECKSIG, with the hashtype appended to the end as an int.
So the only thing you could change without making the signature invalid is the input script. Who the money goes to and where it comes from gets signed, which is the stuff that matters. So you can't change that, and all you could do by modifying the input script is make it fail, in which case the transaction would be tossed.