Changing the colour of the prompt text, changing an Xterm title bar, and moving the cursor position all require non-printing characters. This is just a two character prompt. This works fine - until you type in a large command line. You can see this by typing a really long command line - you will find that the shell wraps the text before it gets to the edge of the terminal, and in most cases wraps it badly. This is because it's confused about the actual length of the prompt.
Command lines wrap properly.
This is particularly useful with complex prompts, to allow them to be stored in files and called up by sourcing the file they are in. For those of us coming from a DOS background, the idea of tossing big hunks of code into the environment is horrifying, because that DOS environment was small, and didn't exactly grow well. There are probably practical limits to what you can and should put in the environment, but I don't know what they are, and we're probably talking a couple of orders of magnitude larger than what DOS users are used to. If these people are worried about memory they don't need to be using bash. M' to sort by memory - see how close bash is to the top of the list.