Отличная статья! Кстати, алгоритм линеаризации очень напоминает классический алгоритм на графах под названием топологическая сортировка, который как раз строит такое упорядочивание вершин ориентированного графа в список, чтобы все ребра шли в одном направлении.
P.S. С удовольствием почитал бы про метаклассы.
Порядок разрешения методов в Python