An input carries a signature, presumably by someone on the paying end of the transaction. A signature implies that you are agreeing to something. What is a signer agreeing to?
A Bitcoin transaction, in general, is constructed backwards. First all of the outputs are frozen and then the inputs (sources of funds) are progressively constructed. When the system (wallet?) asks for your signature it is able to show you the outputs — where the funds will go along with the conditions thereon. What you sign is the incomplete transaction beyond the input which your may enable. That portion includes all of the outputs.
This is buried deep in the script semantics. I discovered this while resolving the near Bitcoin flaw described here.