SMS messages are squeezed into unused space in control packets that the phones and towers exchange normally even if there's no call happening. So on GSM networks, SMS isn't data and incurs no cost at all to the operator. SMS should be completely free on GSM providers.
I agree that there is little if not zero "tower-to-handset" bandwidth cost for SMS messaging.
However, SMS (and MMS) messaging does depend on all that infrastructure that's in place, and by providing SMS services, the telcos are required to reliably route and deliver the messages around the world. That message handling and routing certainly has a cost, and therefore I believe that providers have a right to fairly pass on a portion of the cost of their infrastructure investments (plus a fair profit) to the users of SMS services.
HOWEVER, I am no apologist here. At least in the USA, providers charge very high fees for text messages. If I send a 15 character text message to my wife, we get charged $0.40. A few pennies may be fair, but far more than $0.39 of that $0.40 is profit. Furthermore, SMS is configured to be parasitic - my friends (and spammers) like to send me text messages without my authorization. That costs me $0.20 every time, and there is no way for me to stop them without giving up my wireless service altogether.
What is even more disturbing is that all the telcos in the US have generally increased their SMS rates to a new high. They now charge the same outrageous fee ($0.20 in, $0.20 out), leading me to believe that instead of competing, they are colluding.
In short, telcos have decided (individually or together) not to compete in this area, to the detriment of all telco customers. Laws should be considered to encourage fair and healthy competition in this space, which will encourage healthy SMS industry growth and efficiencies.