We recently started working with the AT90USB646 series of uC's on a project, as they perfectly fit the bill for us. To this end, we wanted to keep compatibility with the Arduino environment for our customers. While there appeared to be a few other attempts to add support, they didn't really work for us, so we created a little patch.
One of the big problems for us was the Atmel bootloader, and the original LUFA bootloader, were fairly complex in initiating the bootloader. We include a modified LUFA CDC bootloader that automatically goes into the bootloader at start-up, but will automatically start the program if PF0 is high. This way, you can simply attach a button to PF0 and press it during power-on to start the bootloader for firmware update. We also needed a bootloader indicator, so PC6 is flashed while in the bootloader (you can attach an LED, LCD backlight, etc.) The new bootloader is also at around 4k, freeing more flash space.
Everything is available here: https://github.com/DynamicPerception/ArduinoAT90USB
If people like it, we can look at doing a merge and pull request with the core Arduino project.