The reason is because when Liquibase runs the logic inside the changeSet is ran and then it is marked as ran in the databasechangelog table. So in the case of tagDatabase the most last ran changeSet is the previously executed one.
The rollback logic should still work correctly for you because rolling back to version_2.0 will bring you back to function51 being the last changeSet executed. Running update again will re-tag it as version_2.0 but that is fine.