1. You pay through the nose for each "request/response" cycle. SMS aggregators will set you back a few pennies per message received and sent.
2. At some point you have to purchase a short code phone number, which typically start at $500 USD per month. Countries like Australia are worse, costing upwards of $1500 USD per month.
3. Phone numbers don't behave consistently globally. In an SMS world, you can bet on maintaining multiple phone numbers to access the same app. This can get confusing if you have a German mobile phone user in Canada trying to text an Australian phone number.
4. If you operate a US short code, there is rampant censorship and policing of how and where a short code is displayed. For example. If you operate the short code 88088 from your web app and a customer publishes this to their own personal website completely out of your control, expect to respond to a letter about taking this phone number down.
While the reach of SMS is high, I wish it would die a swift death and be replaced with mobile web technology because its really a horrible environment to build applications (much worse than any App Store environments)
If you decide to dive into SMS, check out this Sinatara-like DSL app framework we built for handling messages: https://github.com/polleverywhere/message_router