I was one of the many who made the mistake of asking a April Fools question on SO today. It got shut down and removed in about 5 minutes, which is an impressive display of the site's self-moderation powers.
Fun and Joke posts seem inevitable for a programming Q&A site. Programmers are funny people (or at least, people who think they are funny). Though, I can totally understand that if everyone asked April Fools jokes the site would get out of control, same with other joke posts.
I wonder if users could earn a "no-points" posting option once they reach a certain threshold of points (2k?)? Such a "no-points" post could earn the user no up-votes (possibly could earn downvotes to deal with true troll or offensive questions) or badges. It would just be used for sharing a chuckle. Having it be contingent on a certain level of reputation would hopefully keep it from being abused. It might also be useful for other types of questions.
"This is not a discussion board, this is a place for questions that can be answered!"
...however, having built an amazing community for Programmers, it seems like some discussion-board behavior should be more tolerated... Maybe we need a stackoverflow alternate universe site that is just for discussion, not for questions and not even for meta?