It’s surely possible. Question is whether it works well, convenient, doesn’t cause problems. But it’s only possible to figure out by trying it out
As for vinyl-like approaches I think we’re running into limits of language. Thing which we want to write are not clearly expressible. One way to look at statically-typed data frame is explicit Array of Structures →Structure of Array transformation. Implementing it requires speaking about fields of product type and it’s something we just don’t in a language