Make the characters used for markup visible at all times, not just in the edit mode, but also when the page is rendered.
You can implement a WysiwygEditor by complicating it, making the “what you see” closer to “what you get”, but you can instead go the other way around – and make “what you get” look more like “what you see”. This way you still retain the simplicity and straightforwardness of regular wiki, while you make the markup easy to guess and learn – by just seeing it everywhere on the wiki.
The CamelCase links already work that way – the markup is retained (the words are not separated or converted to lowercase when the page is displayed), while the functionality (linking in this case) is added.
When parsing the raw text of a page, don’t remove the markup characters, but leave them as they are, optionally adding a CSS class to them, so that they can be make smaller and dimmer, as to not interfere with reading too much. With bold/italic or p reformatted text, just leave the markup where it is. Lists require some thought when designing the markup – you probably need to use indentation for nesting, and use actual numbers for marking numbered lists. Even emoticons can be made similar to their textual markup.
Some common elements cannot be easily left as-is. This is true for example for tables, but also for links that have link text different than the title of the page they link to. Then again, there are wikis that don’t use either.
The additional visual clutter may be distracting when reading – but one shouldn’t use that much markup anyways.
Search engines might not like this very much. Screen readers can be told to not read these characters, but spider bots won’t pay attention to any CSS. Same with text-only browsers. One solution could be to insert these characters with JavaScript.
It doesn’t look very nice and makes such a wiki look very differently from “finished” web pages. It may be a good thing though.
CommunityWiki:VisibleMarkup, CommunityWiki:PlainTextWiki