I think I'm firmly in the camp of Otis Outside. In part because by default ODS SELECT statement persists within a proc, across run groups. e.g.:

proc reg data=Sashelp.Class;
model weight = height age;
ods select FitStatistics;
run;
model weight = height;
ods select ParameterEstimates;
run;
model weight = age;
run;
model weight = age;
ods select all;
run;
quit;

Generally it's just confusing/misleading when global statements appear "inside" a step. Another example would be %let statements "inside" a data step.

I think Otis also has a strong case for TITLE statements always being outside procs. Curious if Ingrid likes those inside as well?