Данный вопрос сильно выходит за пределы Bitrix Framework в целом.
Это вопрос организации кода, опыта и стиля принятого в команде.
Если хотите делать более канонично, то ориентируйтесь на те же модули битрикса и смотрите хорошие практики.
Так, например принято делать делить на `controllers` (для контроллеров), `internals` (внутрение методы).
Т.е. никаких `ajax.php` только контроллеры и все апи считается публичным (пусть и не документированным), если оно не помечено `@internal` или не находится в `internals`.