Is there a way to save selection by faces
This is a limitation of the current Vertex Groups system that has been an occasional nuisance.

That's is why they are called Vertex Groups, not "Face Groups"; selections of vertex don't unequivocally define groups of faces, since a vertex can belong to an arbitrary number of them.

Would be nice to hear about more options and solutions for this from other users around here. The way I generally solve this is by using material slots instead, if you don't mind the additional pollution in the materials list.

Go to Properties Window > Materials Tabs > Add New Material Slot button, and then with the desired faces selected press the Assign button.

Since they work on a per-face basis instead of single vertex, they can correctly define face groups. You can still assign materials independently, but you can't have a face belong to more than one slot unfortunately, so you may end up having several slots with the same materiel.

Different intersections of selections overlapping materials may require an exponentially growing number of slots.