My company breaks our custom parts into libraries sorted by function (Clocks.lbr, Amplifiers.lbr, etc).
Since Eagle keeps a separate copy of each footprint in each library, updating a footprint means duplication of work: NO FUN!
I've developed a utility that uses a source footprint library, then checks that libraries footprints again each other library.
From this app, you can copy a footprint to the footprints library or from the footprints library.
If the footprint exists in the target library, it is overwritten. If it doesn't exist, it's added.
This is an open source project, found here: https://github.com/lycannon/Eagle-Footprint-Sync
Right now it's a basic app. In the future, I would like matching to work on individual attributes instead of the entire package.
Also: if the pin names are different between footprints, the app will overwrite them anyway. This means you can break your packages! Be careful!