Strange behavior of SDL_SetWindowFullscreen

This is my basic sample for demonstration. Here everything is fine, the window opens in fullscreen mode.

Code:
int main(int argc, char** argv)
{
SDL_Window *window;
SDL_Renderer *renderer;

SDL_CreateWindowAndRenderer(1400, 1050, SDL_WINDOW_FULLSCREEN, &window, &renderer);

bool done = false;
while (!done) {
	SDL_Event event;
	while (SDL_PollEvent(&event)) {
		if (event.type == SDL_QUIT)
			done = true;
	}
	SDL_RenderClear(renderer);
}

SDL_DestroyRenderer(renderer);
SDL_DestroyWindow(window);
return 0;

}

When I replace window creation with this:

Code:

SDL_CreateWindowAndRenderer(800, 600, SDL_WINDOW_RESIZABLE, &window, &renderer);
SDL_SetWindowSize(window, 1024, 768);
SDL_SetWindowFullscreen(window, SDL_WINDOW_FULLSCREEN);

Everything looks fine too - window is created as window and immediately changed to fullscreen.

But a strange thing happens when I use my native desktop resolution as fullscreen resolution:

Code:

SDL_CreateWindowAndRenderer(800, 600, SDL_WINDOW_RESIZABLE, &window, &renderer);
SDL_SetWindowSize(window, 1400, 1050);  //<- my native resolution
SDL_SetWindowFullscreen(window, SDL_WINDOW_FULLSCREEN);

The window opens in “fake” borderless fullscreen, as if I passed SDL_WINDOW_FULLSCREEN_DESKTOP to SDL_SetWindowFullscreen.
Can anyone help me understand what’s happening here? I’m using stable SDL 2.0.3 on Windows 8.1.