"You do them without a UTXO commitment by instead committing to the input block and offset that the input came from. Then fraud can be proven by simply showing whatever is at that location, if its not the thing its supposed to be."
Ahh ok. You include the proof that the output actually exists as part of the transaction.
It does mean that you need commitments though. You have to include commitments for every input in the block.
No different from having to commit to input values for fee computation inflation avoidance though agreement or size for size limits though. And the commitments are small, e.g. could be sent in just a couple bytes. They don't even need to be sent to a full node that has the data already. (though it's better to do so, so the block hash can be checked before looking up the inputs)