С точки зрения схд подсчет точно занятого места задача нетривиальная, особенно при миллиардах мелких объектов
Так и есть. Архитектурно это задача отнюдь не простая.
Самый лучший способ подсчета это Inventory. По классам хранения и куча др. Информации Но она не real time. С другой стороны, для малого количества объектов можно простым List objects обойтись, а когда объектов много, то, обычно, точность до килобайта не нужна.