IMO there's an even better design, which is to not hide links in an expandable menu at all.
Just show all the links at once! With appropriate headers and visual hierarchy to provide organization, this is better in pretty much every way: faster to use, easier to implement, and more accessible.
The biggest practical objection I see to this kind of "flat" menu is simply that it's hard to make it look good at the top of a page. But any competent visual designer should be able to manage that, aesthetically.
Just show all the links at once! With appropriate headers and visual hierarchy to provide organization, this is better in pretty much every way: faster to use, easier to implement, and more accessible.
The biggest practical objection I see to this kind of "flat" menu is simply that it's hard to make it look good at the top of a page. But any competent visual designer should be able to manage that, aesthetically.