My confusion was regarding inner padding of data passed to the array<vec3f>. It is now clear, that in order for it to work correctly, the data should be padded:
[
1, 2, 3,
4, 5, 6,
7, 8, 9
] ->
[
1, 2, 3, 0,
4, 5, 6, 0,
7, 8, 9, 0
]