Hi,
one program may have multiple transactions codes assigned to it. For example you can create multiple variants and assign these variants to different users. When you execute a program directly, which transaction code should be checked? The first one, all of them. The right answer is none. You have to understand that ABAP programs are re-usable components that are exposed to users via transaction codes. The business users should not be executing programs directly from SE38/SA38.
Cheers