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