Возможна ли иерархическая организация модулей?
Или только сетевая?

У меня в голове давно крутится нечто подобное следующему (в скобках то, что разрешено имортировать):

1. Прикладуха (Сервисы, Прокси)
2. Сервисы (Прокси, Драйверы)
3. Прокси (Драйверы) - вспомогательный, для декомпозиции сервисов
4. Драйверы(HAL)
5. HAL (интерфейс среды (Железо, DLL и т.д.))