Last night I wrote a simple C++ class that wraps the file I/O for my debug output. When activated it selects SWO for output and when deactivated it selects the null driver.
The IO calls seem to robust to pass NULL. For example if I try to write something using NULL it test the file pointer before performing the write. If this is true for the other routines why would one use the null driver?