If you really do have "clear all" and "close all" at the beginning of every script, then the only way that there could be any information left over about the plot layout is if your script had modified the DefaultAxesPosition property of the root graphics object.
"clear all" means to get rid of all graphics and all variables, but the Default* settings of the root object are not restored.
Your situation sounds much closer to the possibility that you still have an existing figure and an existing current axes that was created with subplot() and your plots are being done to the default current axes. Those conditions would disappear if you did a "clear all", so it does not sound like you have done that.
In my opinion, "clear all" should never be done from a script or a function, only from the command line, and only if your intention is to reset your MATLAB session. It should not be used casually. "close all" is not as bad, but it does presume that the script knows better than you do about whether you might still have wanted a figure displayed for comparison purposes; in my experience that is an arrogance that is not often justified.
