Pure const or not to be (pure)

The question “should the function be impure, pure or pure const” confuses me a bit. I thought beeing only pure should never be an option (#30_cc_ubp) because there is space for errors (e.g changing sth)?

So is the option pure only just a test for the students or are there cases, when I will use only pure?