Si, sin problemas, el sub-procedimiento solo será visto por el procedimiento en el que es definido.
procedure Ejemplo(x: integer);
procedure SubEjemplo(i: integer);
begin
end;
begin { comienza procedure Ejemplo}
x := etc....
SubEjemplo(x);
end;
begin {begin principal del programa}
Ejemplo(23); {valido}
SubEjemplo(23); {invalido, no es visible en este ambito.}