Because the miner almost always expects a fee, so why not just infer how high it is and you don't need to spend block bytes on it?
I suspect it was a design decision, yeah. If outputs could be spent multiple times then you'd need to traverse the chain of outputs backwards to see how much an output has left in it. Bitcoin's implementation is less complex and more elegant, imo.