"Слои" определяются только и исключительно прикладной задачей.
Каждый "переход" это как начать говорить на другом языке - в этом
должен быть железобетонный резон. Большинство программистов страдают наслаждаюстся созданием "пустых абстракций" - нафиг не нужных
промежуточных языков, якобы для упрощения. Это изначально бред. Каждый слой это нефиговая "ступенька" для чтения кода, сам его факт УЖЕ усложнение.
Я ответил на ваш вопрос?