What do you think about the Kinesis way?
I think it's good, within the limitations you mentioned. Additionally, you cannot save or reload previous maps that you've made, so to me it'd seem that it was only good for quick remaps involving just a few keys. Also, as you mentioned, the "source" character is always from the default unremapped keyboard - but with a DIY project there is no One True Default keyboard, as there is with a commercial product. Actually, if things work out, there will be Three True Defaults, lol, along with the option to roll your own, which I was thinking would be rather confusing (and the Kinesis method of making everyone use the default QWERTY map to remap, even if their keycaps are Dvorak, seems unreasonable to me). So that would increase the documentation burden a bit - and the burden on the keymap designers.
Still, you're making me reconsider... Are quick, small remaps common enough for it to be worth it? Or, are Make and the avr-gcc toolchain (even with a nice howto written up) user unfriendly enough that the limitations of the Kinesis method are worth it for larger remaps? I tend to forget that not everyone's perfectly at home with a terminal and a text editor, so I'm probably in need of some perspective here.
[...] you always move all characters from a key, that is unshifted and shifted. [...]
In Kinesis defense, this is a (slightly annoying) consequence of how keyboards are designed. That is, keys and shifted keys have the same keycode, and the host is responsible for registering different characters based on the presence of modifiers (which are either present for all the keys pressed, or none of them), so there's nothing the keyboard can do. If you really wanted to move symbols around separately, it might be possible to implement shift as a layer key and use the standalone keycodes for symbols... but that'd be changing the meaning of things.
Which brings up another limitation of the Kinesis method: keycodes not present in the default layout aren't available at all.
Personally I like this approach a lot, it's very easy and requires no software. No matter which OS I boot into, I always have the layout I want.
For what it's worth, modding the keymap in the firmware source would be OS independent too - and the software required already works (with slightly different interfaces) on every major OS.