Cuando hace un typecast tienes que estar seguro de que los dos tipos son compatibles, en en caso del operado "as" es el mismo el que se encarga de hacer esa comprobación.
Es decir:
Código Delphi
[-]
(F as TFProveedores).MiProcedure;
Equivale a esto:
Código Delphi
[-]
if F is TFProveedores then
TFProveedore(F).MiProcedure
else
Como ves hacen lo mismo, pero "as" primero hace una comprobación.