Why are extra faces deselected when deselecting vertex groups?
This is because they are vertex groups, not face groups.

Deselecting a vertex group will deselect all the vertices in that group, which will also deselect any faces which those vertices where a part of.

Think of it this way: For a face to be selected, all the vertices which make up that face must also be selected. So by deselecting a single vertex in the subdivided cube example, you actually deselect four faces:



If you deselect the vertices in your group manually, you'll get the same result as clicking the deselect button on the group.

What you want are Face groups, however unfortunately there is no support for these yet. There is a proposal though.