In my work I find GSM carrier NAT infrastructure to be very annoying. Firmware running on the phone must be aware of a "use it or lose it" mentality in the carrier, in my experience this is usually around 15 minutes for TCP, then the NAT hardware flushes your route and it effectively disappears (breaking the protocol). UDP is even shorter.
In systems which must be bi-directional, this issue of keeping the connection alive is a concern, not so much for the phone but for the server which may be sending data back to the phone sporadically. It also forces the phone firmware to perform the initial connect, so useful server-based utilities are hard to put on the phone without modifying them.
IPv6 would (likely) provide a static IP address on the phone resolving all of these issues and providing better support for downstream communications from a base to the phone(s).