The addresses are valid forever unless you lose your wallet. The only disadvantage is that the address receiving a transaction is visible to all nodes. It is easy to automatically generate a new address each time a page is refreshed on a donation page using the JSON RPC interface.
Thats right, there are actually some online wallets which changes the address after every transaction such as Xapo, in Xapo, the address of your wallet changes everytime a transaction is done though the previously used address still can be used for receiving bitcoins which means even if someone sends the funds on the address that is not now being shown as your address you will still receive the money in your wallet.