Hi Arjun,
Yes, this is because the Visibility in Grid Settings is not for the grid itself, but for grid rows. That expression is evaluated for every row, and determines which rows are shown. If the expression returns false for every row, the header still shows.
If you really want to hide the whole grid, right now you need to place it in a section, and use the Visibility rule on that section. Note that if your grid was in a section and you wanted to keep it there, you can add a sub-section, and you can set the title of that subsection to something that describes the grid.
And this is the RFE to improve this:
https://github.com/orbeon/orbeon-forms/issues/635Alex
--
Follow Orbeon on Twitter: @orbeon
Follow me on Twitter: @avernet