The use of shapeMode() does not affect upon drawing
The drawing of a shape should be depending on the state of shapeMode.
If you create a shape adapted from a 2D native such as ELLIPSE and state that shapeMode(CENTER), it does the same as shapeMode(CORNER)
PShape circle;
void setup() {
size(200, 200);
circle = createShape(ELLIPSE, 0, 0, 60, 60);
}
void draw() {
shapeMode(CORNER);
shape(circle, 100, 100);
shapeMode(CENTER);
shape(circle, 100, 100);
}
only puts one white circle in the center, when it should add two distinct ones:

PShape circle;
void setup() {
size(200, 200);
circle = createShape(ELLIPSE, 0, 0, 60, 60);
}
void draw() {
shapeMode(CORNER);
shape(circle, 100, 100);
shapeMode(CENTER);
shape(circle, 100, 200);
}
because one of them is simply drawn further down (y2 = 200):

PShape bot;
void setup() {
size(200, 200);
bot = loadShape("bot.svg");
}
void draw() {
shapeMode(CENTER);
shape(bot, 70, 70, 100, 100);
shapeMode(CORNER);
shape(bot, 70, 70, 100, 100);
}

It seems that shape() does not take in consideration that the context instructed by shapeMode() might change, but I don't have a better guess.
You should know that it's still the case for 3.3.7
I was puzzling over this today. It is still not fixed, as of 3.5.3.
Neither 3.5.4. ಥ_ಥ
Most helpful comment
I was puzzling over this today. It is still not fixed, as of 3.5.3.