That's because when users change the theme, it's recorded in the database what theme they picked. Guests don't have this so the information isn't stored and it goes back to the default. The only option really is to create a new table and store guest IP and theme settings, although personally I think it's a waste of space.