Keine wirklichen Nachteile, die ich mir vorstellen kann. Ich denke, es wäre etwas klarer, wenn die Arbeitsvariablen als Instanzen des Subtyps deklariert würden, z. B.:
DECLARE
subtype t_int is INTERVAL DAY (4) TO SECOND(0);
v_int t_int;
FUNCTION hhmm_to_interval return t_int IS
v_hhmm t_int;
BEGIN
v_hhmm := to_dsinterval('PT9999H');
RETURN v_hhmm;
END hhmm_to_interval;
BEGIN
v_int := hhmm_to_interval;
DBMS_OUTPUT.PUT_LINE('v_int=' || v_int);
end;
Teilen und genießen.