This should shed some light on it. From cg_main.c:{ &cg_bobup , "cg_bobup", "0.005", CVAR_CHEAT },
{ &cg_bobpitch, "cg_bobpitch", "0.002", CVAR_ARCHIVE },
{ &cg_bobroll, "cg_bobroll", "0.002", CVAR_ARCHIVE },
Anything flagged with "cvar_cheat" tends not to retain too well. Cvar_archive means "save this in the q3config.cfg". If you do a /seta (cvar) (value) as opposed to a /set (cvar) (value) it should retain the cvar in your q3config.cfg. Since cg_bobup is flagged as a cheat cvar q3 might not keep it when you play even if you do that. Why it's cheat flagged I don't know, except perhaps some script kiddie could use it to change the camera position way up or down using some insane values. Seems like they should have just sanity capped it instead so people can still turn it off instead of making it a cheat cvar. Maybe I'll do that.