(урок не смотрел, по ссылкам не ходил).
Про нагрузку на GPU чушь. На GPU будет нагрузка, только, если используется Starling, либо другие фреймворки, использующие Molehill и даже в этом случае нагрузка зависит от количества обсчитываемых объектов на экране и даже при наличии большого количества этих объектов вы быстрее столкнетесь с проблемами памяти, чем с проблемами нагрузки на вычислительные мощности GPU.
Но пул, действительно может помочь снизить нагрузку, только на CPU, ведь создание объекта (new()

использует значительные ресурсы процессора. Если объекты часто создаются и удаляются, то нагрузку действительно можно снизить используя пулы. Только изначально первый пул объектов (не использующихся) не забивается под завязку, объекты создаются по мере необходимости. Зачем забивать пул тысячами или сотнями объектов, если за все время работы приложения может понадобится только десять? Пример, нам необходимо создать объект, смотрим в первый пул, если он пуст, то создаем объект new();, если нет, то берем объект из пула и заполняем его свойства необходимыми значениями, помещаем объект во второй пул (использующиеся сейчас объекты), после того как объект стал не нужен, удалили его со сцены, из второго пула и добавили в первый пул и т.д. для следующих объектов.
Таким образом мы сводим создание объектов к минимуму, будет создано ровно столько объектов, сколько использовалось в пик. И объекты будут созданы только тогда, когда это необходимо. Тем самым мы снижаем нагрузку на потребление памяти в моменте и потребление ресурсов процессора при создании объекта и работе GC.
И опять же, совет использовать это для большего числа объектов не состоятелен. Необходимо иметь причину, для того чтобы использовать этот механизм для конкретного типа объекта. Например, создание объекта очень длительный процесс, в сравнении с "простыми"; создание происходит очень часто; большое количество объектов; объект потребляет очень много памяти. Только одно совпадение не может быть причиной для использования этого механизма.