you can always inspect the generated C code to see what are the differences between them.
One thing I spotted which could be a potential hidden bug is data.unsafeAddr. When the data is an ordinary array, it would be ok. But when it is a seq, crash is almost guaranteed. safer way to write it would be data[0].unsafeAddr, safe for array and seq