In short: flat surfaces are baked as non-flat.
I'm trying to bake normal map. It has some weird topology, but still quads, and they are flat. But, blender bakes those flat places as if they were not flat. I believe, instead of raycasting, somehow, it just uses data from smooth shader.
I use default settings for bake, just changed bake type to "normal".
upd: i tried to double check everything and test it on cube. Just bake cube.
Now, instead of baking cube, blender uses cube's uv map as mask to bake previous object, that was hidden and unselected.