Only because its a non standard format... not exactly the best comparison, especially since being what it is, they are prone to errors due to being exponentially more complex than other possible formats as shown by recent updates to fix API->read() in the PHP API...
"It works decent enough, so I'm happy" isnt exactly the mindset I like to take, so if it can be better I'd much prefer to start a discussion about it, you're attitude clearly shows you arent of the same mind set and you really aren't providing any sound arguments against it, other than 'we have this', 'it works'... So, if that is all you have, then by all means, stop replying and if anyone else has constructive input like Fewi, then lets hear it.
my arguments again:
there are existing APIs for some languages
API requires complex shifting/splitting of socket data to become usable (more prone to bugs due to complexity)
resembles messaging protocols used in 1970's Satellite terminals, archaic and higher learning curve if you have no preexisting API client
modern message format (be it JSON, XML or other) -- widely used easy to adopt, most languages have preexisting or native parsers
eliminate the need for API client, simply need to know how to send commands and be able to parse the resulting data format (JSON, XML or other) -- some languages may require a 3rd party lib but these are widely available and heavily tested for bugs and standards compliance.
requires rewriting some of ROS
depending on how its implemented, breaks backwards API compatibility.
Thats all I can think of at the moment