Why can't I use cmd key to change languages for a single character? On my macbook keyboard I have two languages - Hebrew and US. On 'keyboard viewer' I see that clicking and holding the cmd should temporarly switch to the other language (instead of cmd+space and then cmd+space again to go back), but that doesn't seem to work. any idea why?
Cmd isn’t mormally used for making characters in macos -- instead it is employed for menu shortcuts and other purposes. You can use caps lock to switch to the US keyboard for character input if you set that option in system preferences/keyboard/input sources.  

If you use the input source named "Hebrew" , then you should be able to get Latin characters by pressing caps lock (without actually switching to the US layout).

The input source named "Hebrew PC" will generate Latin characters when you hold down the Shift key, but only upper case.