I read some discussions about the topic and it looks like they just want to encourage us to work with 32-bit (and 64-bit) variables all the time. In fact all C# operations are 32/64-bit (yes, dividing a byte by 2 and assigning the result to a byte doesn't compile)! So they expect we write code like this:
Code:
int i = array[123]; // Read a byte from memory
i = i >> 1;
i = i / 2;
array[321] = (byte)i; // Write back to memory
32-bit arithmetic is most optimized on modern architectures anyway. So just let the byte be promoted to int automatically whenever you perform arithmetic operations on them. Only when you have to write it back to a byte you need to cast explicitely. Supposedly this is also less bug prone because ints don't overflow as easily as a byte.
Anyway, style wise, I'd just use shifts when you need to access bits, and use division when you want to divide the actual value. Using shifts for dividing a value is confusing and not faster, and using division to get to some bits is equally confusing. So just be explicit. Simple as that.