Yes, that's right. This is how subplot.m works - it creates new axes on a figure, but it also simply sets existing axes as current, if the same mnp value is given. I'm not sure how subplot accomplishes this, but using tags is a quick solution that will work most of the time.
Useful, concise function. It would be more useful if calling repeatedly with the same parameters did not destroy the previously-created axes (this is how subplot behaves). I did this by tagging the subplot_tight axes, then checking if an axes with that tag already exists on the current figure.