We could, but I'm not sure how much it buys us, considering possible future support for e.g. UTF-16 as text, but most importantly we also need to buffer data and this keeps our logic a tiny bit simpler, which usually translates to faster code, though I have no proof whatsoever that is the case here.