In normal window mode background defines the color of the background (and the text of the statusbar) while foreground controls the background color of the statusbar.
In fullscreen mode the background is black while the statusbar uses background as the background and foreground for the text.
Version 25.
Seems like line 453 of window.c does this intentionally.

Obviously two colors are not enough if there is a different interpretation of the colors. I would expect that a background color is always the background and the same for a foreground color. As the bar has a different color I think that at least three colors (bar fg, bar bg, image bg) are necessary (or just bg and fg while the bar is simply inverted). But different interpretation depending on fullscreen state doen't make sense for me.
I'll get rid of the special bg handling for fullscreen mode as soon as I have the time to do so.
Most helpful comment
Obviously two colors are not enough if there is a different interpretation of the colors. I would expect that a background color is always the background and the same for a foreground color. As the bar has a different color I think that at least three colors (bar fg, bar bg, image bg) are necessary (or just bg and fg while the bar is simply inverted). But different interpretation depending on fullscreen state doen't make sense for me.