A trial :

1. create table ta ( a number , b number)
2. begin
for i in 1..400 loop
insert into ta values ( 1, 1);
commit;
end loop;
end;

3. select * from user_segments where segment_name = 'TA'
bytes blocks Extents
71680 35 4

4. delete from ta ;
commit;
select * from user_segments where segment_name = 'TA'

bytes blocks Extents
71680 35 4

--> the hwm is not reset

5. alter table ta deallocate unused
bytes blocks Extents
61440 30 4

To be very surprised , although I delete all the records then issue deallocate command , only 5 blocks space has been withdrawed . what happen to the left 30 blocks ? I guess it's a bug of oracle7.3 .