Выполнение зависимостей обеспечивает порядок операций. Зависимости от памяти обеспечивают видимость операций с памятью. Это не одно и то же.
Для правильной работы записи после записи вторая запись должна произойти после первой записи, но вы также должны убедиться, что первая запись видима для операции, выполняющей вторую запись. В противном случае вторая запись может быть перезаписана первой, даже если вторая запись произошла после первой.
Если вам нужно более аппаратное объяснение, подумайте, что произойдет, если при первой записи используется один кэш, а при второй записи - отдельный кеш от первого (у графических процессоров много кешей). Зависимости выполнения не влияют на кэши. Таким образом, кэш второй записи может записывать свои данные раньше, чем кэш первой записи, что означает, что первая запись в конечном итоге перезапишет вторую.
Зависимости памяти вытесняют данные из кеша, таким образом гарантируя, что при второй записи не будет записи в кеше.