A developer I used to work with disagreed with this on the grounds that calling a function, and potentially passing the necessary data, incurred enough overhead to become significant to execution time.
Hey, I think I used to work with the same guy. He also wanted to do everything in assembly for efficiency. Seriously! I remember him saying, "Jim, do you realize how many instructions are needed for a single FORTRAN CALL statement?" Gaaah.
Another rule of thumb: Make it right, then make it fast. If excessive function overhead is a performance problem, then the "inline method" refactoring is only a menu pick and an OK button away.
Lots of languages will inline automatically for you as well. C++ lets you manually specify inlining. The SmartEiffel compiler will automatically inline methods where it makes sense, and it will even handle inline "virtual" methods.