First, you do not transfer data using AT commands. You only use them to estabilish connection of some kind. Then, using an external application you build an TCP/IP (or other) connection to transfer your data. Can be done using standard tools available in the system (pppd, especially).
If you plan only data transfers you probably don't need any special management of the commands, so they may be simply passed to the port when something requests a connection. If you plan to use a wider set, it becomes more complicated (waiting for one command to finish, breaking commands and so on).
Second thing: it's hard for me to imagine a situation when you need at commands in the kernel. It's application level and that's the way it is usually (99.9%) designed.