Can I delete old hook_update_N functions? Suppose you have a custom module, and you have hook_update_N() implementations in your .install file. 

If you have old update functions, and all updates have run in all sites that the module is installed, is it safe to delete those functions? 
Please note this is about custom modules that you have access to all sites and updates have been run. 

Thank you in advance and I wish everyone a merry Christmas!
Actually, there is a situation where you could need to keep the older update hooks: when you restored the database from an old backup and you need to update the database to the latest version of the installed modules.
If that is never your case, then—as long as you are sure all the sites have been updated to the same version of the module—you can remove the old update hooks. Keep in mind that, if you delete an update hook you needed for a site, the alternative is uninstalling the module, and then install the latest version, but this will cause data loss.

Updates hooks are only invoked when updating an installed module, and they are not invoked contemporarly to hook_schema() and hook_install(). When a module is installed, hook_update_N() is not invoked; hook_schema() and hook_install() are only invoked when a module is installed. That is the reason why old hook_update_X() could be removed, once a module is updated to version X or older.

Usually, the update hooks are removed when passing from a Drupal version of the module a more recent one (e.g. from the Drupal 6 module to the Drupal 7 module). Since the installation file is loaded just on updating and installing (and other limited situations), removing the update hooks doesn't give any significant gain.