From my interpretation of the standard, it appears that you should be guaranteed that no reallocation will occur if you have already called reserve and are using push_back and pop_back only.
I believe this is the case because it guarantees that once reserve is called, no reallocation will occur on insertion until the size needs to surpass the capacity. It also states that pop_back is the same as a call to erase on the last element, and erase only invalidates iterators and references after the element that is erased. Put those together and I think it's guaranteed that you can pop_back safely.