I think the major technical hurdle is to figure out the hashing mechanism used for the library. Apparently there are people trying to reverse engineering Apple's hasing scheme, but I have no idea what the current state is, see: http://bluwiki.com/go/Ipodhash
However, in order to make using an iPhone/Touch (and probably the new generation of iPods released yesterday too) with MC possible,
there is another way that doesn't require hacking at all.
Apple
publishes an API for iTunes. It is fully scriptable and can be easily controlled by external applications, and this is a
supported use. MC could use iTunes as a "proxy" handheld. Simply set iTunes to "sync all" to the iPhone/iPod and have the full iTunes library controlled by MC's handheld function. When you "sync" from inside MC, it would launch iTunes (loading a library specific to the actual device you're syncing), then update the iTunes library to match the files in the handheld queue, and then initiate the sync to the connected device.
This certainly wouldn't be ideal for most iPods, and full-on native support would be best, but it would certainly be better than nothing. And, honestly, for an iPhone/Touch it might actually be
better than native support, because of all the other things that iTunes syncs to the device (not the least of which are the applications in the App Store). In fact, for my iPhone, if given the choice between native MC support and using iTunes as a handheld, I'd certainly choose the latter. With native support, every time I wanted to add an App via iTunes, I'd have to wipe the phone (because iTunes is stupid and locks the phone to one iTunes library). And what about syncing Bookmarks and Contacts (and email for people who need to use that feature)? Unless JRiver intends to crack and emulate the entire iTunes syncing functionality, including App Store support, (extremely unlikely) then this workaround would be vastly superior.
Plus, implementing it and updating it when Apple changes things would be much easier, because they
publish the API. The API probably goes out of date and doesn't contain everything you need, but has got to be better than shooting completely in the dark and hacking in native support (which they'll just break again with the next iPhone OS release).