Вы, кажется, говорите, что выбор Django не позволит вам использовать более неоднородное решение позже. Это не тот случай. Django предоставляет ряд интересных соединений между слоями, а использование Django для всех слоев позволяет вам воспользоваться этими соединениями. Например, использование Django ORM означает, что вы получаете отличное приложение администратора Django практически бесплатно.
Вы можете использовать другой ORM в Django, вы просто не получите приложение администратора (или общие представления, например) вместе с ним. Таким образом, другой ORM делает вас на шаг назад от полного Django сверху вниз, но это не шаг назад от других разнородных решений, потому что эти решения не дали вам внутрислойного совершенства для приложения администратора. .
Django не следует критиковать за то, что он не предоставляет гибкую архитектуру: он такой же гибкий, как и любое другое решение, вы просто отказываетесь от некоторых преимуществ Django, если решите поменять слой.
Если вы решите начать с Django, вы можете использовать Django ORM сейчас, а потом, если вам нужно переключиться, вы можете перейти на SQLalchemy. Это будет не сложнее, чем начать с SQLalchemy сейчас, а затем перейти к другому решению ORM.
Вы не сказали, почему ожидаете замены слоев. Это будет болезненный процесс, несмотря ни на что, потому что всегда есть много кода, который зависит от того, какой набор инструментов и библиотеку вы используете в настоящее время.