Yes, but the hardware simply executes both branches and disables side effects on the not-taken one. As far as I understand it the reason is that there is only a single instruction pointer for a whole warp, so individual threads can not have their own control flow. Now, in your case something could detect that all threads in the warp actually branch the same way and there really is no need to execute the not-taken branch at all, but that is purely an optimization not a correctness thing (at least for the case where both branches are error free).
How? My isBound uniform value is invariably 0, under all circumstances. No thread is trying to access the wrong branch.