Peter,
First question:
I've dug into the Arduino internals and I have come across macros sbi() & cbi() and although they are functionally equivalent to sbi/cbi machine instructions they do not actually expand to those instructions. Instead they are defined similiar to
#define sbi(r,b) r |= _BV(b)
#define cbi(r,b) r &= ~_BV(b)
The result is that the compiler doesn't actually generate real sbi/cbi instructions to implement this macro!
Second question:
Because my macros do text substitution instead of parameter passing as in a true function call, the macros cannot handle 'bare' Arduino pin numbers (e.g. _D13 needs to be used instead of 13). Personally, I don't think this would be a big deal but there are some real Arduino functions that take pin numbers as formal parameters. This would present a problem but not an unsurmountable one.