I feel like it was just different technologies for different times. When SOAP was invented, remote procedure calls were being wrapped in object-based interfaces. There were competing technologies. They wanted to use the web to transport requests to the server, so you had all the serialization and deserialization.
The web servers were talking with browsers, not applications running in browsers, so they couldn't send as many HTTP verbs.
Now, the environment is different; communicating with a web service is central to many non-business applications. REST APIs enable real interop.
There's no WSDL, but there is documentation, and conventions, which, I suspect, most developers prefer.