Some GFX drivers (nvidia) don't care about user-set ICC profiles, and will reset it whenever they feel like it. (switching screen off/on, starting a 3D-application, starting nvidia-settings, changing resolution, etc.) Nvidia does not care and has no intention of fixing their driver.
My solution for this is to run xcalib in the background each second. This works, but produces unnecessary overhead (spawning a new process, shell sleep, etc.) and wakeups, which can even reduce the battery life on a laptop.
It would be neat if xcalib could have a daemon mode that takes care of this itself. If possible, it might even sleep until the profile is changed, and only then override it again with the user profile, thus avoiding blindly setting it each second or so.