In the previous editions of the idea forum I have seen quite some ideas about increasing the functionality of conditional visibility, such as conditional visibility on basis of a microflow. What I would really like and I think might be less complex / have less impact, would be to introduce the option to set conditional visibility based on association (show when association is set, else hide).
Only show a comment container when there is at least one comment. If not, hide the whole block. Now you have to introduce an additonional attribute: HasComments, which pollutes the domain model and increases the possibility of inconsistencies.
For as far as I know and can see that's not the case. A change will only be communicated to the server when (1) you hit the save button, (2) an onChange microflow is set or (3) there is another dataview / widget on the same page that uses the same association.
A change of the association will most likely already happen on the server or will be propagated back to the server if done in a widget. Just as with boolean/enum values is the case right now. In that case a server request will happen regardless. Unless that part is also updated of course.
I agree that microflow based conditional visibility would provide the most flexibility and would be great to have. However, it also means an additional microflow call from client to server on page load, and another call every time some attribute within the form is changed in order to re-calculate the conditional visibility. Conditional visibility on basis of association can probably fully remain on the client side, and thus cause less overhead.
The general idea with the microflow conditional visibility is that with that option you won't need any of the other options anymore, as you could make your microflow do pretty much any validation for making the element conditional visible.