Detection of contradictions
Your question is great, but it skips one step. You are assuming that the query planner (or optimiser, depending which terminology you prefer) can keep into account all CHECKs, merging them.
So you have:
check (title in ('BOSS','WORK'))

And:
CHECK ( (title &lt;&gt; 'BOSS' OR salary &gt; 100) )
CHECK ( (title &lt;&gt; 'WORK' OR salary &lt;= 100) )

And you assume that the planner should be able to know that:
CHECK ((title = 'BOSS' and salary &gt; 100) or title = 'WORK' AND salary &lt;= 100)

This could be the case or not.
In general, the question to your answer depends on the technology you are using. MySQL and MariaDB don't take into account CHECKs. Some other technologies probably do. You'll have to test the technologies you are interested in.