The length of the buffer for entire column in O(n * k). If you want to gather a subset of the strings in that buffer, you essentially need to scan across the buffer and copy out the subset you want. Because that buffer grows with string size k, it's linear wrt k. The new implementation doesn't have this problem - you only need to deal with views which are constant size.
Even with that definition, you won't necessarily observe correlation between A and B.
See the example used in the twitter thread I linked:
> Imagine driving a car, reaching a hill and pumping the gas as you begin to go up so that your speed is constant. The correlation between pressing on the gas and the speed of the car is zero but they're obviously causally related, it's that the agent is optimizing speed!
Interestingly, the example he uses about correlation isn't true:
> Probably the shortest true statement that can be made about causality and correlation is "Empirically observed covariation is a necessary but not sufficient condition for causality."
Correlation isn't necessary for causation, so ironically the supposed mutilation used to fit on a PP slide - "Correlation is not causation" - is actually far more correct.
The same mistake is also made in Kahneman, Sibony and Sunstein's new book [1].