The rule is easier. Changing this is done by simple assignment. It's less hidden. This makes filehandles that much easier. Whatever object C contains is what default output goes to and what the object methods work on.
C works just like other variables.
The new C variable can be used to easily redirect error output as well, something you often want to do if you're not attached to a tty. You have to put checks similar to this for many functions and different situations. Plus, it doesn't catch C or C calls embedded in modules, meaning that you will always lose some important error output. With C , all error functions are set to act on it instead of C by default. All through simple assignment.