Yeah, a for loop is much more efficient there, I suppose. However, it didn't seem to resolve my issue. I waited before grabbing the powerup and, sure enough, if you grab the "older" of two powerups coming down the screen, the more recent powerup stops. Apparently, the fundamental problem is still there. Here's the entire for loop this time:
var powerupCollectible:PowerupCollectible;
for(var c:Number = 0; c < collectibleArray.length; c++)
{
powerupCollectible = collectibleArray[c];
collectibleArray[c].descend();
if ( PixelPerfectCollisionDetection.isColliding( avatar, powerupCollectible, this, true ) )
{
removeChild(powerupCollectible);
collectibleArray.splice(p, 1);
collectibleAcquired();
}
}