I'd be curious about use cases where this does or does not make sense. On the one hand, you saved a few nanoseconds on the integer-to-string encoder. But on the other hand you're committed to storing and transferring up to 15 leading zeros, and there must be some cost on the decoder to consuming the leading zeros. So this clearly makes sense on a write-once-read-never application but there must also be a point at which the full lifecycle cost crosses over and this approach is worse.