A big problem to solve is that SMS is notoriously bad at delivery. You may have SMS's dropped for weird reasons, and delivery reports aren't exactly reliable.
Unfortunately that does introduce additional complications like knowing which packet failed (maybe there's a better method for checksuming for this type of situation?), but even in the worst case scenario, it only adds a small overhead to infrequently resend the entire stream than to double up each stream with ACK responses.
Ideally though, you'd be right that something more concise would be preferable.