Set up Smoothwall with dynamic DNS. Works just fine. No issues.
And it's three Smoothwalls - two at work and one at home. So far I never had any issues.
Dynamic DNS clients exists for all operating systems, you just have to scratch around a bit. If that fails, port an open-source DDNS client.
What happens here (but it differ from client to client)
1. Dynamic DNS client checks whether
http://checkip.dyndns.com/ can be reached or not.
2. DDNS client then retrieves IP address from
http://checkip.dyndns.com/ and compares it to its external IP.
3. Or else it compares the IP associated with the hostname with its external IP.
4. If the two differ, then a request is pushed out to the DDNS server to update the associated hostname with the new IP.
5. The updated hostname/IP is propagated throughout the Internet to various DNS servers.
So the fallacy that it will only work with certain OS'es is ruled out.
Which reminds me... I gotta check out why I'm unable to FTP in to my Ubuntu laptop via CellC...