array([[1,0,0,0],
       [1,0,0,0]])

Somehow your split is failing to split and it’s all coming in as one token. The zeros are padding, the ones are probably <UNKNOWN>. I looked at this a bit, and it’s because the default standardize is “lower and strip punctuation” → it’s removing the commas.

I am not quite sure how (if?) Ragged Tensors would be of use with TextVectorization layer

Ragged Tensors are exactly what you’re looking for here. Your split function returns ragged tensors.
If you split before passing to the TextVectorization layer (the result will be ragged), just tell the TextVectorization layer not to split by passing split=None.

the goal is building a Model using the Functional API

If you have a ragged input to a functional model use keras.Input(..., ragged=True).
If you’re not using any other features of TextVectorization then StringLookup may be a good alternative since it doesn’t have all the bells and whistles.