This is because libjit is a backend compiler meant to work together with a user-implemented frontend. It is the responsibility of the frontend to validate source language or bytecode programs. For the case you provided a correctly behaving frontend should check if the constant fits the target type. If it detects a problem there is a choice:
* print a error message and reject the whole program;
* print a warning message and truncate the constant;
* silently truncate the constant.
Such a choice can be made only by the frontend. It is not possible for libjit to decide. So it does not try to and simply expects to get sensible data from the frontend.