You mean digits? Because, that is the only ASCII that will fit in a single byte.
The only big problem I can think of other than that, is synchronization. What if you start receiving in the middle of a transmission? Then all the values will be in the wrong place, and on the last set, it will hang forever waiting because the sender is finished, and the quota of 4 hasn't been met yet.
It's far better to employ start and end markers... at least a start marker. Then the receiver can be sure that a sequence is starting and can capture the data in the correct order and know by counting when it is finished.
A noise spike could also destroy sync by producing a rogue character. Using the input buffer hides all the data until it's read and so prevents you from catching problems like that.
I think they mean that they're reading 4 ASCII characters at a time (as per the above code)... but the sending system is actually sending more characters than 4 at a time. They might send 8, or 12 characters.