I'm not in favor of storing a transformed version of what the user has entered in the WYSIWYG editor. What the user enters, must be preserved.
Take the case where you apply filtering to a field, based on the role the user has (common in the site we work on), when a user is promoted from author to a webmaster role, which comes with less filtering, you don't want him to edit all his previous postings.
The case for filtering on storing the content is not a good one if you take into account that a normal production site is using caching, so the heavy work (applying filtering to the content) is done once, when you put the page in cache.
On topic : BBCodes are old skool, but they have an offspring in our own 'custom tags' functionality. That is a powerful feature that isn't used as much as it could.
It depends heavily on your type of user and site. Some sites have technical users that know their way in HTML, for them it is no problem to have to encode everything in the editor. If your site is using a complex design, they must be able to apply the right classes to the different DIVs in order to get it right.
Other sites have users that want to enter text, and that want the system to transform that text into the right layout. Those users don't know about HTML, don't know about DIVS but always want the most complex designs
For them, BBcodes might be too much, but markdown might be a compromise.