On Mon, Jan 16, 2012 at 16:30, Jacek Generowicz <jacek.generowicz@cern.ch> wrote:
When running unity-2d-panel, the panel appears once on each screen,
even though a single process is running. (There is a glitch where the
width of the narrower screen determines the width of the panel, so it
doesn't span the whole screen width on the wider screen.)

The glitch should alert you to what's really going on:  the GNOME panel (Unity is built on top of GNOME) uses a single process for all panel windows, but the windows are actually independent.  Unity is simply arranging for the same applet config to be used in each of the windows (it's actually running the applets multiple times).  (The way the GNOME panel works, this amounts to duplicating some gconf/dconf keys, so that each panel has its own copy of the config.)
 
At the moment I am spawning two xmobar or dzen2 processes, one for
each screen. This isn't really satisfactory: Requiring multiple
processes merely to display exactly the same information, and
hard-wiring 2 bars, is rather grating.

But that is all X11 supports; you can't actually display a window in multiple places, you have to create separate windows with independent contents.  It's not up to xmonad to control this.
 
Have you any suggestions on how to configure XMonad so that a single
status bar is visible on every visible screen that happens to be
connected at any time?

As stated above, this is simply not possible.  xmonad doesn't have any control over it; X11 only allows a window to be visible in one place at a time.
 
--
brandon s allbery                                      allbery.b@gmail.com
wandering unix systems administrator (available)     (412) 475-9364 vm/sms