As a case example:
Polling Input for keypresses during physics_process() is distasteful. Queuing up a method call in input() for subsequent processing during physics_process() is 'better' code because you aren't doing input logic in a time critical method like physics_process().
Conceptually this would be signals but ones only executed in physics_process()