That is a new trick to me, excellent. If you want I will give you credit for its inclusion as I had yet to have discovered this oddity of decimal mode and will add it to the manual as another alternative.
That's a known trick that works with many machines. I don't need the credits for this one.
I once knew a source where it seems to be mentioned for the first time, but I do not remember now. I know, however, that L.A. Leventhal has it in his 6502 book.
What about the interrupts? AFAIK the standard C64 interrupt handlers are not compatible with decimal mode.
That's right. I should have mentioned that one must be careful when using it.
In fact, I have used it mostly in interrupt routines themselves, so this was not a problem. 
From my point of view, this version works best of you want to convert multiple values at once: SEI/SED, then convert everything, then CLD/CLI.
For a subroutine, it might not be best suited.