rb резервирует место в памяти во время загрузки программы, резервируемая память не заносится в бинарник (только инфа о том сколько надо выделить). db определяет байты в бинарнике, и этот объем потом переносится в память. можешь поэесперементировать, rb 1000000, а потом измени на db 1000000, обрати внимание на объем бинарника
Заносится ли резервируемая память в бинарник, сильно зависит от формата. В целом, экономия будет, только если rb стоит в конце файла/сегмента/секции. Если после rb идут данные, то rb NUM превратится в что-нибудь типа db NUM dup 0.