I generally create and destroy as needed, but on a dedicated UI menu layer, so a bit of both 1 and 2. This layer is separate from gameplay huds/UI layer. That's more of a personal organizational preference thing than a performance issue though
I don't like having hidden objects/layers that aren't serving any specific purpose. I also generate my menu item positions dynamically via events to be flexible. I imagine for someone who likes utilizing the layout editor to place and layout their menus, hiding and un hiding layers would be more suitable.
I doubt there is any performance impact worth thinking about at all, unless you're doing something really crazy with your menus. For something like an inventory or character sheet, I'd definitely create it as needed, but for the reason that the contents are dynamic rather than any performance concern.