Yes, you can commit to data this way, but there is nothing special about Taproot here.
The Pay-to-Contract construction used to tweak the root key in Taproot is generally usable, and has in fact been used for exactly this purpose. In fact, it is one of the mechanisms used in OpenTimestamps to commit to timestamped data (including a variant sign-to-contract which makes a signature commit to data rather than a public key). It is also used in Blockstream’s Liquid pegin mechanism, where transfers from Bitcoin to Liquid pay to an address derived using a tweaked key of the federation, which commits to the transfer information.
In fact, using an additional leaf in Taproot for this is overkill, and would inevitably increase the depth in the Merkle tree for at least one other leaf – resulting in increased spending cost. Just using pay-to-contract or sign-to-contract directly on one of the public keys involved can be done with zero cost to on-chain spending policies.
Would this not significantly reduce the cost of services like colored coins, timestamping services, etc, which commit their data directly onto the chain?
Decent timestamping services already use better techniques.
For colored coins it depends whether they just need timestamping or actual publication of data. My understanding is that it’s generally the latter (as otherwise, they need another censorship-resistant channel to transfer the actual data, which could then probably be used directly).












