Well, just to add my two cents:
My residential DSL service is very good most ways, and when using the Linksys router, I think I only have to "nudge" it to connect every 2-3 weeks.
In contrast, the stock settings for v. 4.1.2 don't update frequently enough to keep up with the dynamic nature of my DSL connection.
To compensate for this, I am using ipcheck.py from ipcheck.sourceforge.net
I actually run it hourly, since it does nothing if the address has not changed. Important to prevent abusive updating at dyndns.org!!!
Without this, the entry at dyndns.org will fail to change before a few hours have gone by. The connection is up, just "new"