Thanks for the thorough comments! In particular, point 2, specifically the size of 8, is exactly the main source of my confusion.

Could we leave the migration to memoryviews for a later PR then? Removing all of Andy's pointer arithmetic would be a big undertaking, and I'm not convinced we would get much benefit in terms of performance.