It is intended. The corresponding section of the manual describes this behavior, you could have checked there.
I agree that the difference in notation is small and, therefore, easy to miss or to employ without intention. However, the analogy with the for does not make much sense: a for loop do not define a shape per se, and you did not include in your examples if a dummy a object is being indexed as a[k, n] or a[k + (n-1)*5]. The generator expression describes a collection/object that did not exist before, it needs a way to express the shape the generated values are organized.