Hmm, that's a good question. My guess is that every "tilde" type of object should output signal data at the same rate as the audio rate. The problem I see now is related to that multiplication you are using: since [phasor~] and your particular construction of [vline~] above both go from 0 to 1, and then are multiplied by a constant, you will sometimes get numbers that are not integers and which I suppose are rounded by [tabread4~] (since indexes of an array should always be integer).
A probably better way of doing this would be to already construct the whole patch in a way to avoid the rounding. If your maths are accurate, then it [line~]'s output will always be exactly +1 at each new audio frame. See:
That said, I really can't hear any difference between these constructions, and so from a practical point of view I would be too much bothered about it. But if you are curious about it, I would recommend you to write to the mailing list, where all the Pd gurus and old Chinese masters live. If someone knows the exact answer to this question, then this person is very likely reading that list.
Cheers!
Gilberto