> There's no way to prove someone is some age without presenting a legal ID.
Sure there is.
Verifiable Credentials and other similar standards allow this to be delegated in such a way that there is no need to present ID or even let the site know who you are. The site can issue a request to a third party that simply provides back "Yep, we attest that this request was approved by someone over 18".
Depending on the exact scheme, the request may forward you to a broker, who will then forward the request (and your web session) on to the trusted third party of your choice which has already performed ID verficiation (usually a bank). The bank sends a signed response back to the broker, the broker sends a signed response back to the requesting site.
Is it perfect? Maybe not 100%, the broker knows there was a request from a restricted site forwarded to a given bank. The bank knows you have approved a request. There is likely to be an identifier of some sort sent from the site all the way through to the back-end so you know you're not being MITM'd. But in theory nobody should have the full picture.