When you "hg pull" you grab all of the changes since you last did an "hg pull" but your working directory remains unchanged. It is not until you do an "hg update" that your working directory will reflect a new changeset (or version, if you will). If you do "hg update" without specifying a tag or changeset, your working directory will reflect the most current version of the project that you have downloaded. But you can "hg update [tag/chageset_id]" to set your working directory to a specific changeset.
Does that make sense?

