Using the Console class to change the current BackgroundColor and write some text has different behavior, based on whether the console window's buffer is full. If the buffer is not yet full, the background color for only the text output is modified. If the buffer is full, the background color for the next output line is modified.
There are two issues at play here:
1) The behavior changes based on whether the console buffer is full. This makes it very difficult for a developer to predict which behavior they will get, and may introduce bugs based on observations made when the console buffer is not full. The developer has no visibility into whether the buffer is full or not, nor any reason to believe that will be a factor in behavior.
2) The behavior when the console buffer is full (which is going to be common behavior in long-running console windows) is particularly difficult to program to, in trying to selectively color text. Newlines in the text, writing long text that wraps and the use of the WriteLine() API will all cause the colors in new lines to be messed up in this scenario.