Decided I should try to overcome my irrational hatred of C++.
I chose to use gsmlib for the actual communication with the phone. Upon first glance, it seemed to be quite nice.
Unfortunately it seems its effective footprint on the iPAQ is about 2MiB - layers upon layers of derived classes with gratuitous autorefcounting for objects which are only ever going to be allocated and discarded once, all based on libstdc++.
Strictly speaking, the project seems to be well on course to achieve the stated goal - I shall be left with a deep-seated but perfectly rational hatred of C++. :)