Scripting - Where is the documentation for the Layer#Effects attribute?
I actually found the answer in the CS3 scripting guide. CompItem#selectedLayers actually returns an array of AVLayer objects. AVLayer is a subclass of Layer and has quite a few  attributes. Here are a few of them:


Masks
Effects
Anchor points
Position
Scale
X Rotation
Y Rotation
Opacity


Oddly enough, when calling these attributes you need to pay attention to if the attribute is one word or two. If it's one word, the first letter will be capitalized, but if it's two words the first letter will be lower case and the rest in camel case fasion. 

For example, if you have an AVLayer instance called myLayer and you want to get its list of effects you call myLayer.Effects, but if you want to get its X rotation you call myLayer.xRotation.



As for my end goal of creating circles on a selected layer, this is what I came up with (works in CS5.5 although it also needs error checking to see if a layer is actually selected!):

function createCircle(layer, coords, radius) {
    var x = coords[0];
    var y = coords[1];

    var circle = layer.Effects.addProperty("Circle");
    circle.Center.setValue([x, y]);
    circle.Radius.setValue(radius);
    return circle
}

var myComp = app.project.activeItem;
var myLayer = myComp.selectedLayers[0];
var circles = [];

//coordsList could come from an external file or another function
for (var i = 0; i &lt; coordsList.length; i++) {
    circles.push(createCircle(myLayer, coordsList[i], 75));
}