Хорошей практикой является получение всех объектов в методе RetrieveUpdateDestroy?
Почему нам нужно получить все объекты в методе RetrieveUpdateDestroy?
В реальном проекте я могу сделать это так же без страха, даже если есть большие данные?

Зачем [нам] нужно получить все объекты в [a]
RetrieveUpdateDestroy[представлении]?
We don't: кверисет not оценивается. Он используется только в качестве "родительского" кверисета для создания кверисетов для получения, обновления и удаления одного объекта.
Для метода retrieve он добавит .get(pk=some_pk) в конце, и таким образом сделает запрос для получения этого единственного объекта.
Набор запросов можно использовать для фильтрации определенных элементов, например, для предотвращения получения, обновления и удаления определенных объектов. Например, вы можете использовать queryset = Student.objects.filter(active=True), чтобы получить только активные Students.