ListPlot3D fills in non-convex base

Here’s a example, much simplified from what I’m actually working on.
data is a list of {x,y,z}'s. If I project data onto the xy plane, the result is a non-convex area (actually, two disks just touching). But ListPlot3D[data] fills in the non-convexity.

The documentation of ListPlot3D includes an example with “holes”. But the data in that example is in a different form.

I gotta believe this is a bug.

Reading closely, the documentation does not claim to handle non-convexity correctly when the data is given in the form of my original notebook. If I switch to the form of data in the documentation, I get the expected graph. (But I still complain that the result should not depend on exactly what form the data is given in. And why not show the x-axis with x increasing from left to right, as is customary on most of this planet.)

And why not show the x-axis with x increasing from left to right, as
is customary on most of this planet.

In 3D plots the option AxesEdge specifies placement of the axes. Check this:

ListPlot3D[data,DataRange->{{-2,2},{-2,2}},AxesEdge->{{-1,-1},{-1,-1},{-1,-1}}]

Aaaaand …here’s why the ability to handle non-convexity differs depending on the way the data is presented: If the data is presented as an rectangular array of values, then it is clear what is “missing” value. But if the array is presented as a lists of {x,y,z}'s, then there’s no way to tell the difference between a missing value which should be left as a hole, and someting that needs to be filled. in.

Thanks …