If we do have more symbol sets in future, that would kinda indicate that shift applies to letters but doesn't really apply to symbols (which is what we have now, as well as with your current implementation for Russian).

I'd be OK with that, but it does mean that you can simplify the setup a bit as the layout is just standard, shift, symbols, <extra_symbols> and we just treat shift as a special layout activated by the shift button.