Тогда если подвести итог, имеем что-то такое (если нужно - поправляйте):
1. Графика вся контролируется контейнерами виджетов, модели через QScopedPointer.
2. Множественного контроля графики быть не может, потому что все виджеты располагаются иерархично, а модели используют QSharedPointer.
3. Слабые ссылки в виджетах имитируются сигналами, модели могут спокойно использовать QWeakPointer.
Если речь идет (а она идет) об UI, то применение вумных указателей ограничено. Виджеты могут передаваться от одного парента другому и парент может вызвать delete. Поэтому shared пролетает, а без него нет смысла и в weak. Но шаг в сторону (напр "модель"), и все по-другому, умные указатели могут быть вполне уместны.
Вообще часто возникает ситуация когда объект использует др объект, но не владеет им, т.е. не отвечает за его создание/удаление. При этом weak не всегда подходит т.к. используемый может и не иметь явного владельца. Тут мне нравится решение с ID. Храним напр qint64 и всякий раз запрашиваем указатель на используемый объект по этому ID. Появляется много интересных/элегантных решений, особенно для (де)сериализации и undo, где с указателями долго пыхтеть.