Today's programmable Internet is an existence proof of this answer.
In the 90s and early-2000s there were a lot of attempts to codify machine-discoverable protocols: WSDL, SOAP, etc. There are still a lot of people that are sort of obsessed with this idea. Three things have happened:
(1) the weight and complexity that's come along with those protocols has been larger than the value they bring. Auto-generating proxies just isn't that helpful when you still need a human brain to figure out how to connect things together and make them useful.
(2) The growth and success cloud-based apps shows that better protocols are not a necessary factor on today's Internet. This does not deny that better/faster/richer protocols could improve things, it's just not clear that's a critical-path problem. It's just not hard to look at REST docs and wire shit together, regardless if it's optimal or not.
(3) Layering app-level use cases over HTTP (HATEOAS, OAUTH) works pretty well when you're navigating known domains.
For browser to Machine, I'm not sure we need that. The reason is, for example, we can use JSON which is very easily consumable by a machine over HTTP. HTTP provides all of the transport niceties like headers, verbs (which translate fairly well to CRUD), etc. So the combination of a fairly well featured transport layer combined with fairly well machine consumable data document format makes a pretty good protocol.
Which parts can change for the better in specific relationship to a machine-centric API protocol.
Wikipedia has a good source of protocols used across the Internet - you'll recognise a lot as they have significant usage: