When you set a layout to Run visibility on client, the entire layout is loaded in the Browser DOM, and then the visibility condition is checked by the JS code in the client browser. It avoids round trips to the server when showing or hiding the layout. The client-side visibility can process only simple visibility condition expression. That's why we cant specify the When condition rule in the condition, which requires serverside processing.
Let us know if you need any more information.