The key is sent whenever you receive a OP_SendLoginInfo packet. These packets happen on first log in, but also when you zone. I've seen the key change sometimes too, but generally it's the same for an entire session.

Interesting you mention the other encryption, I did see references to a decode key in the ShowEQ code base, however I couldn't figure out where it was used. Makes sense if the functionality was removed.

Feel free to PM me any other curiosities