My naive guess would be that it's just one if-statement, and that since the algorithm knows the position of the clouds, it shouldn't cost that much extra to know the altitude as well.
First, if-statements in GLSL tend to be not simple and often unexpectedly expensive since frequently both branches are evaluated, so the cost of if (A==0) {do something cheap;} else {do something expensive;} might end up (something cheap + something expensive) regardless of the value of A.
Second, the cloud position isn't known by the algorithm, it is assembled, encoded and passed via the effect framework where it is decoded in the OpenGL shader. There's no obvious free slot in the procedure to encode something more, so you need to pass more parameters - about 30 more in fact, or about 20% more.
Third, there's no one place where all this is done - cloud shadow computation is pretty de-localized, partially done by the weather system, partially done by the ALS GLSL shaders (yeah, pretty much all of them because the computation needs to be in each of them).
So your naive guess couldn't be further from the actual situation.