Why are the inputs of Bitcoin transactions signed? This is my understanding of what a transaction looks like: 

inputs: 
  input0: 
    txid: &lt;funding tx0 TXID&gt;
    outputID: &lt;output ID of UTXO in the funding tx0&gt;
    scriptSig: &lt;pkhash_redeemer&gt; &lt;sig0_redeemer&gt;
  input1: 
    txid: &lt;funding tx1 TXID&gt;
    outputID: &lt;output ID of UTXO in the funding tx1&gt;
    scriptSig: &lt;pkhash_redeemer&gt; &lt;sig1_redeemer&gt;
  ...
outputs: 
  output0: 
    scriptPK: &lt;scriptPK for new UTXO&gt;
    amount: &lt;amount for new UTXO&gt; 


Where the signature &lt;sig_redeemer0&gt; is over: 


&lt;funding tx0 TXID&gt;
&lt;output ID of UTXO in the funding tx0&gt;
funding transaction's Pub Key Script
&lt;scriptPK for new UTXO&gt;
&lt;amount for new UTXO&gt;


I've read much that states things along the lines of: "the signature is over the entire transaction" or "the signature signs all the inputs and outputs". However, there are a few points of confusion I have: 


Do multiple inputs necessitate multiple signatures? Or is my example wrong? 
Why do we need to sign the inputs of the transaction?


If the inputs aren't signed, that means the following are left unsigned: 


txid of funding transaction
&lt;output ID of UTXO in the funding tx&gt;
sequence number (?) 


If all outputs are signed, the amounts and scriptPubKeys of all UTXOs from funding transactions are fixed. An attacker might be able to change the inputs to the redeeming tx, but they are only unlockable if the inputs remain the same, so an attacker can't use an arbitrary input.

Any help would be appreciated! Thanks
There may be multiple utxos that the same script would unlock. The most common example is two transactions that both pay the same address. If inputs weren't signed, an attacker could replace one input utxo by a different utxo that pays the same address, and this would be bad.

Consider the following scenario.  Alice has received two payments to her address 1Alice, both in the amount of 1 BTC: one with txid 234abc in the amount of 1 BTC, and another with txid 567def.  She wishes to pay 0.5 BTC to Bob, so she creates and signs a transaction using the 234abc utxo as input, with the following outputs: 0.5 BTC to the address 1Bob, and 0.4999 BTC to some "change" address, 1AliceChange.  (This leaves a transaction fee of 0.0001 BTC.)

After this transaction is broadcast and confirmed, Bob modifies the transaction so that the input is 567def instead.  The scriptSig works equally well for every transaction that pays 1Alice (they all have the same scriptPubKey), so this new transaction is also valid.  Bob broadcasts it and effectively steals an additional 0.5 BTC from Alice, which she never intended to give him.

This only works as long as 567def has the same value, or greater, than 234abc, but that's not much of a restriction.  (If 567def has a greater value, say 10 BTC, then Bob's new transaction still only returns BTC 0.4999 to 1AliceChange, so it effectively has a transaction fee of BTC 9.0001.  Any miner would be extremely happy to confirm this transaction; indeed, maybe a miner will perform this attack even if Bob doesn't care to.)