1. Использовать QList push+pop (будет туда сюда память гонять)
Зачем push/pop если QList заточен и на добавление в голову? (см QList::prepend()) как и на удаление с головы. Странно что фаны не обвинили Вас в "незнании документации"
Формально самопальный контейнер может быть быстрее, но выигрыш здесь крохи, связываться не стоит
Рисую линию из этого массива через QPainterPath, можно ли у PainterPath удалять начальные элементы или каждый раз его заново создавать?
иногда прежде чем загнать в QPainterPath линию сглаживаю сплайнами(т.е. кол-во точек умножается на splineCount).
p.s. Можно ли рисовать линии с координатами int/double? (У float 25бит на значение иногда не хватает и страдает точность).
Вам же прекрасно известно - сначала надо в букварь заглянуть, а потом вопросы задавать. Где Вы видите методы удаления из QPainterPath? Зато полно методов принимающих QRectF и QPointF