Как работает position:fixed и zoom на touch устройствах?
Собственно есть куча блоков с фиксированной позицией и возможностью перетаскивать их. При масштабе 1 работает прекрасно. А вот если сделать zoom, то визуально их притянет в видимую область (должно ли так быть?) и при попытке перетащить - движение начнется с места, которое было при масштабе 1
Вы не с того места начали строить логику. В данном случае, расчет положения блоков должен рассчитываться на JS исходя из размера экрана (windows.width / windows.height / текущей позиции scale).
При перестройки zoom - соответственно рассчитываете координаты и размеры блоков, присваиваете им новые значения.
Rad1calDreamer: windows.width / windows.height нужно для 0 точки (загрузки), чтобы было от чего отсчитывать координаты при событиях увеличения/уменьшения/смены ориентации.