The reason for my stern words is that there are crashing bugs that have caused us a lot of headaches. For one, if something goes wrong during serialization/deserization, the response crashes and no status code or error message is returned. So aside from the trademark Microsoft unintelligible design, you also have to deal with crashing bugs that won't be fixed for years, if ever.