в 32 разрядном режиме короче всего использовать 32 разрядные регистры и 32 разрядную адресацию. В 64 разрядном режиме короче всего использовать !!!!!!!!32 разрядные регистры и 64 разрядную адресацию. Хорошая же 64разрядная архитектура, заточенная под 32 разрядные регистры.
в 16 разрядном, короче и регистры и адресация 16 разрядные. т.е. 64 битный процессор будет использовать короткие формы инструкций везде кроме 64разрядных регистров. конечно 16разрядный режим будет не под ОС, а при старте проца.
В .bss лежат глобальные переменные и static. Мусор в локальных, они выделяются на стеке, и туда действительно попадает то, что лежит в стеке. Специально их компилятор не очищает.
Ну так это в теории. Но в любом случае, даже если на какой-то платформе так будет, тогда кто-то должен эти переменные обнулить, потому что стандарт гарантирует, что они инициализируются нулём.