это само собой. но ведь имея схемы у нас сильно развязаны руки по упаковке и оптимизациям, но нет...
В древности, когда проектировали первые бинарные протоколы, была идея обойтись без десериализации: прочитали из сети 20 байт и вот тебе в памяти готовая структура на C.
Так было до первой смены byte order, когда стало ясно, что сериализация будет всегда.
Как можно играть с упаковкой - я не очень понимаю. Оптимизация - почему бы и нет.
У той же корбы было два паттерна: можешь скомпилировать читалку и добывать данные сразу, можешь пользоваться строчным описанием и читать как жсон