Okay, I think I got it...
...consider there being two files, .osu and .osb, right? Well, see there's a line here in the .osu file when you put a background image by the button in the Design tab:
//Background and Video events
0,0,"bg.jpg"
osu! reads this as the default background for the difficulty. This background shows up as the BG whenever you highlight the song in the song select menu.
But you can prevent this thing from showing up while playing by putting this line at the start of the .osb (just right after the //Storyboard Layer 0 (Background) one) in the .osb:
Sprite,Background,Centre,"bg.jpg",320,240
F,0,0,,0
You can change the filename of the pic btw, I'm just using bg.jpg as an example.
Notice this script, this is the normal script for a simple image in a fade out motion. F refers to it should be fading, while '0,0' refers to start-time, end-time. Then you see the ',,0' one, right? What's supposed to be in between those commas is the starting contrast of the picture at start-time (1 indicates visible, 0 indicates not), while the 0 after the second comma refers to the contrast at the end-time being not visible. So basically what this script is doing is to immediately make the bg.jpg file invisible at the 0th millisecond, making it not visible anymore at all.