A number of credit card companies offer virtual card numbers that you can generate to avoid giving out your real number. I agree that it should be more normalized, widespread, and automatic, but it is already possible to start doing this today.
A problem mentioned is that whilst this cuts off the payment, in law it may not remove the liability to pay, so the company could in future chase you for the payments.
Yeah, I was thinking of what I could do with a company Brex card - but I can't with my personal CC, at least not directly through my bank (though as others note apparently Google Pay does this now).