Here is another issue that has always been in DF and should really have a warning as well. We just added this to the CodeExplorer

Functions with same name but different return types

Take the following example

Code:
Object oMyFirstObj is a Message
    Function MyFunction Returns Number
        Function_Return 9.3
    End_Function
End_Object


Object oMySecondObj is a Message
    Function MyFunction Returns Integer
        Function_Return 3.1
    End_Function
End_Object

Showln "--------------"
Showln (MyFunction(oMyFirstObj(Self)))
Showln (MyFunction(oMySecondObj(Self)))
Showln "--------------"
so the output would be

Code:
--------------
9.3
3.1
--------------
now lets turn this around a little

Code:
Object oMySecondObj is a Message
    Function MyFunction Returns Integer
        Function_Return 3.1
    End_Function
End_Object

Object oMyFirstObj is a Message
    Function MyFunction Returns Number
        Function_Return 9.3
    End_Function
End_Object


Showln "--------------"
Showln (MyFunction(oMyFirstObj(Self)))
Showln (MyFunction(oMySecondObj(Self)))
Showln "--------------"
now the output is

Code:
--------------
9
3
--------------
so thinking you have a function returning a number but because in another place is a function with integer defined first it will change your function to also return an integer

No warning by the compiler that this will happen. And of course this can easily happen by an added package, a new method in DF, etc

Actually it already happens a lot with com packages

same issues exists with String and integer