I think I'm beginning to understand this, tell me if I have it right. A output can only be spent once, thus, if two transactions spend the same output (as one of their inputs) then they count as the same transaction. So if you had two transactions:
T1:
Input1,Input2 -> Output1
T2:
Input1,Input3 -> Output2
They would both be considered different versions of the same transaction since the both share Input1.
If you had a transaction
T3:
Input1 -> Output1 with a lock time that was non-zero and greater than the current block number then that transaction then that transaction is still open, you would be able to broadcast a replacement transaction (with a higher sequence number) and change the output or the script (or both) to whatever you wanted, but you couldn't change the input.
(I realize this isn't all implemented in the client, I'm just trying to figure out how it will be done when devs get to it.)