From a brief check, on Linux with X, with Hebrew and English layouts, situation seems to be like that:
1) On the basic X level (I used xev to test) there is a "state" (binary flags, indicate e.g. if ctrl was held, and also the "group" i.e. if we are in Hebrew or English mode), keycode (a number, which is the same for "א" and "t"), and an "XLookupString" which is the same (14) for both "ctrl-t" and "ctrl-א" (but does differentiate between them if ctrl is not held). xev also reports "keysym" which is the unicode point for "t" in both cases (ctrl-t and ctrl-א), but is the unicode point for א if control is not pressed.
2) In gtk (a higher level interface), there is "gdk_keyval_name", which is either "א" or "t" according to the current layout (language mode). Whether or not ctrl was down is determined by the mask GDK_CONTROL_MASK in the state of the event.
Note that at both levels there is no specific code for "ctrl-א". Whatever it is that emacs sees is either generated by some higher level function that I am not aware of, or generated within emacs itself. Probably we should look it up in the code.