It's not a matter of something you can toggle or just space, it's a matter of the datatype used.
With smilies: subject is a varchar(255). One smiley looks like this
<img src="img/smilies/big_smile.png" width="15" height="15" alt="big_smile" />
or like this
Guess which one you want to go with so that the user doesn't have their subject cut off?
With quotes, for example:
<blockquote><div class="incqbox"><h4>Person wrote:</h4><p>stuff</p></div></blockquote>
Versus
[quote=Person]stuff[/quote]
Especially when people make longer posts, they would find it annoying when "what they see" in terms of post length isn't what they get (they'll get an error saying their post is too long).
Plus there's the fact that you can implement an alternative parser to change how these things work without too much trouble.
There's also the issue with search where posts aren't parsed because only the first 1000 characters are shown and the BBCode could suddenly end in the middle. Much bigger issue with HTML
And finally, I believe Rickard uses pun_htmlspecialchars on these posts before displaying them. If he would implement your idea, he would have to run that beforehand as well (otherwise you'll have the HTML just displaying as normal text) which means that anyone who can manage to insert or update a post can create an XSS issue.