And to catch up with memcmp on the larger ones, it's possible to write
some SIMD code.

But why bother? The C library should be taking care of that.
FD-STREAM-READ-N-BYTES uses 'memmove' (eventually). Would you rewrite it in pure Lisp also?

By analogy, the Go runtime uses pseudo-abstractions 'xmemmove' and 'xmemcmp' which are nothing more than 'memmove' and 'memcmp' for all their platforms.