Don't use set_entity_visibility() to make players invisible, if you intend to do other stuff like running around etc. I think it causes a couple of sideeffects. It just adds a EF_NODRAW flag to EV_INT_effects. This thing likely has other uses... Maybe something like when you want to "disable" an entity for awhile.
Use set_user_rendering for that instead.
I could be wrong though, but this is how I remember it.