getPicture with FileURI does not work, it crashes.
getPicture with DataURL works, but it leaves a copy of the photo on the phone's Camera Roll. The user then gets very frustrated because they have this mess of photos from your app cluttering up their personal photos, and then have to delete them. If they are using SkyDrive on Windows Phone 8, they will also have a copy of every photo automatically saved to their SkyDrive account, which then they have to delete from there as well, cursing your app with every delete operation. Oh, I think that in Windows Phone 7 this is not the case, but it is the case with Windows Phone 8.
It turns out this is due to the CameraCaptureTask function, which makes it exceedingly simple to get a photo but has this undesirable side effect. You cannot just delete the file, though, because of a security exception.
The solution is to re-write Camera.cs so that it uses the full camera API rather than just the CameraCaptureTask function. That's a couple days of labor, for sure, but someone needs to do this or else the Windows Phone 8 platform will suffer from this annoying bug for all that rely on Cordova. When asked why their app has this annoyance the reply will be "Ah, it's one of those stupid phonegap apps..." I hate that answer. So I hope that someone who has the time will contribute to this issue. I will give it a try in a few weeks when I finish up the projects that I have been putting on hold while upgrading my app to Windows Phone 8 capable, but I just can't get to it for a few weeks. I am hoping that this summary will help someone else get a jump start on this issue as they won't have to do so much preliminary research before starting.