1) yes, as described. In assembly, don't use address (0x04), just use "DDRB"
2) yes,
3) no. It does not cost runtime processing power. It is shifted at compile time
To 2)
I don't recommend to use 0b00101000, also don't use "1<<3"
Better define "SCK_pin = 5",
And use
"1<<SCK_pin"
It's much more better to understand what this line of code does, even without comment.
When I write assembly code I don't care about real address, I always use the (register) names
Klaus