похоже, вам кто-то по ушам проехался про низкоуровневое программирование в контексте С++(какие ещё нахрен указатели! умные-хуюмные, это вообще ненужно), что конечно возможно но абсолютно неуместно
Есть решение с использованием библиотеки GetX (https://pub.dev/packages/get). С их инстанс менеджером один контроллер очень хорошо распостраняется на несколько роутов) Ну для этого нужно немного ознакомиться