WikiPage represents the storage layer aspect of a page and its history. It shouldn't know about things like category pages showing category listings even when they don't exist as pages. That knowledge belongs to the "page type", and thus into Article (at least for now).
Article already has hasViewableContent(), but it'S deprecated in favor of WikiPage::hasViewableContent(). This should be reversed.
There are only a handful of callers, so this should be easy enough.