Представьте, что у каждого экземпляра приспособленца должна быть ссылка на неизменяемую матрицу 10k x 10k. Раз уж паттерн экономит память, то логично будет матрицу держать в единственном экземпляре, несмотря на наличие пула приспособленцев. Во в ConcreteFlyweight эта матрица и хранится. С другой стороны, зачем нужен пул объектов, если у них вообще все свойства одинаковые? Для хранения отличий используется UnsharedConcreteFlyweight.