I find myself using layers less and less because of subtle glitches like this - after all it has to rasterize the graphics context to an image and we're back in pixel land.
A non layer approach would use g.drawDropShadowFromPath() with a circle path:
const var Panel1 = Content.getComponent("Panel1");
// that's a poor circle, but the blur will save us...
var circlePath = Content.createPath();
circlePath.startNewSubPath(0.5, 0);
circlePath.quadraticTo(1.0, 0.0, 1.0, 0.5);
circlePath.quadraticTo(1.0, 1.0, 0.5, 1.0);
circlePath.quadraticTo(0.0, 1.0, 0.0, 0.5);
circlePath.quadraticTo(0.0, 0.0, 0.5, 0.0);
Panel1.set("width", Panel1.get("height"));
Panel1.setPaintRoutine(function(g)
{
g.drawDropShadowFromPath(circlePath, this.getLocalBounds(50), Colours.black, 50, [0, 0]);
});