Why is the scriptPubKey required when using signrawtransaction?
Ahh, just found the answer. Should have read the help all the way through. It says: 


  The second optional argument (may be null) is an array of previous transaction outputs that
  this transaction depends on but may not yet be in the block chain.


So, it's there so that the method can be used even if the transaction it depends on doesn't exist yet. If it does exist, however, the client is smart and does extra error checking to make sure that you don't mess up.