The other annoying aspect of this is that there are (hidden?) APIs for making apps functional in fullscreen mode across multiple monitors. Aperture (for sure) and Final Cut Pro X (I believe) both make use of multiple displays.
I've noticed that in Mail.app for example, if you show the connection doctor, or status or even the address list (Window -> Address panel) while in full screen you can happily drag those across to the secondary/empty screen and they will stay there for the duration of the app being full screened.
I don't think a special API is required, just knowledge of the second screen and then placing windows on that second or third screen.