M>Пытался посмотреть исходники memcpy, понял что он копирует вперёд (т.е. увеличивая поинтеры), но я не понял почему оно зависит от адреса dst и почему вообще проблема существует если идёт вперёд при копировании.
Ты наверное нашел не те исходники, их много, своя под каждую платформу, иногда своя под каждые возможные фичи процессора, вот например одна из возможных (выбираемых в рантайме) реализаций
https://github.com/bminor/glibc/blob/master/sysdeps/x86_64/multiarch/memmove-avx512-no-vzeroupper.S
И это только вариации для x86-64