There are ways to do indefinite edits using message relationships
The edit message would simply refer to the message to be edited and contain the new content, or a delta/diff of the content. This would not need to be shown to the user in the UI
The reason it's this fucked up is probably more because it's yet another Google-Specific extension on top of RCS if I had to make a guess.
Its great, same as their standalone Speech-To-Text Application.