I recently did a site-to-site vpn using OpenVPN for a customer who is using dynamic ip ADSL at both ends of the link. Suffice it to say, the link dropped fairly quickly and I had a problem with adding routes after the link came up – I had to put in some waits because adding the route immedaitely after the link came up, failed. So I decided to go the config file route, added some standard dynamic usage stuff from my client-server configs and added the route add stuff into the config instead of as an external item. The config now works well across ip and line changes, and the routing never fails.