Да, решение с отдельным классом-резольвером интересное, но тогда либо наследовать его от базового (и в чём тогда смысл?), либо не пользоваться стандартными методами базового класса в резольвере. А чем так плоха резольвер-фабрика в базовом классе?
То есть писать нечто вроде "if PythonCode.isMatches(newPaste) ... elif MayakovskyPoetry.isMatches(newPaste) ..."? Но в логике guesstype есть этап предобработки с циклом по всем строкам текста, я бы не хотел этот цикл проходить много раз.