Victor
I had to read it twice to understand. ;-)
Why not create a dyndns client in openhab? could be done via http easily. There are SOAP enabled websites to discover your own IP address, then update a chosen
myhost.dyndns.org AAAA record, and you are done. (maybe there exists already a java lib to do it...)
On the UPNP bit: easy to do with Cling (Cling = lib I used for the Sonos binding), there is even sample code if I remember well...
That being said, you can even be very smart by for example using Cling to make an entry in the firewall, then use the dyndns client to update your IP address, and for example, update a CNAME that simply holds the port number to use. The mobile client does a regular DNS lookup and has all the info to get back to the OH instance....
just my 2 cents
K