Насколько я понимаю, "верхний" и "нижний" уровень - относительные понятия, всё зависит от того, как поставить вопрос, т.е. от контекста. В одном случае "верхний" уровень - это тот, где принимаются самые общесистемные решения (бизнес-логика и пр.), а в другом случае "верхним" могут называть абстрактный уровень, где вообще никаких решений никто не принимает. Пример первого - главный модуль программы, пример второго - интерфейсный модуль. Поэтому я считаю, что пара "верхний-нижний" просто используется в разных значениях, нет единой трактовки, да она и не нужна. Это все равно, что спрашивать, где "по-настоящему" право, а где лево. Если речь о политических партиях, то одна трактовка, а если лицом ко входу стоишь, то другая. Один и тот же модуль может быть в одном смысле "верхнего уровня", а в другом смыле - "нижнего".