If you just want to save/restore the carry bit, and if you don't mind losing the value when you store it and trashing the saved value when you restore it, just use "rlf saved_carry,f" to save it and "rrf saved_carry,f" to restore it. No other registers or flags affected.
If speed is of utmost importance and you need to save/set some other bit and restore it later (e.g. RP0), you can do something like:
bcf STATUS,RP0 ; If interrupt logic might have left it set
That's a total of four cycles to not only save/restore RP0, but also set it to a known state for the ISR (if the branch is taken, RP0 is already in the correct state so there's no need to set it). If the interrupt logic wouldn't affect W or other flags (e.g. if it uses bsf/bcf/btfss/btfsc/incfsz/decfsz for just about everything) this logic can save four cycles versus saving W and status, clearing status, running the interrupt, and then restoring status and W. Such savings aren't important in a whole lot of cases, but may be very important if one is trying to e.g. use a TMR2 interrupt to do something every 50 cycles. Since TMR2IF is in a banked register, one has to clear RP0 to reset TMR2IF. If TMR2 is ticking every 50 cycles and the ISR would take 26 cycles with the improvement or 30 cycles without, saving those three cycles in the ISR could increase main-line CPU availability by 20%.