When I had the same thought I tried to access the GNOME dash object to make it appear without recreating all this stuff, through a very simple extension. But I did not succeed, looked at dash.js and overview.js.
At least (maybe obviously I have overlooked something) GNOME should make the dash accessible through show/hide public functions?