The spec was expected to change to not bounds-check 0-byte lists/strings but has since been updated to match `memory.copy` which does indeed check the pointer for 0-byte copies.
wasmtime
wasmtime-environ
cranelift-codegen
canon lower
canon lift