So, I tried to add a preference to the Mac version to let you hide the dock icon, but <lj-cut text="I couldn't make that work..."> I couldn't make that work.
So, apparently there's no way for a running application to turn its dock icon off. But, you can configure the app to be one that doesn't have a dock icon when it is launched, and then after that, you can turn the dock icon back on. So the way you do this is, you put LSBackgroundOnly=1 in the Info.plist (LSUIElement=1 does not work) and then if you want to have a dock icon after all, you call TransformProcessType (&psn, kProcessTransformToForegroundApplication);. So far so good. Except, LSBackgroundOnly applications never get a menubar: when you select the window, the menubar stays the menubar of the previous application. So when the dock icon is hidden, there's no way to bring up the Preferences dialog so that you can say "actually I do want a dock icon after all." Keyboard shortcuts don't work either. So that's kinda lame.
Also, the way preferences and bindings work is still complete insanity. How can such a basic, fundamental part of the OS be so completely, incomprehensibly insane? And then screen savers take the baseline insanity of it and layer even more crazy on top, because of the moronic way that previewed screen savers run in the same process as the System Preferences application. Madness, I tell you.