Is it likely that do_action will have unexpected results?

In the described scenario, f1 was added and it was indicated it only takes a single parameter, so only one parameter is provided ( the first ). So f1 is never called with more than one parameter.

However, it is possible to make a mistake, if you call add_action and declare that f1 can receive 2 parameters, then it will be called with 2 parameters, even if only 1 is possible, generating a PHP warning.

The same is true if you pass one parameter, f2 would generate a PHP warning because it expects more than one parameter but none are provided. Default arguments can help here.

However, this is the other developers problem for using add_action incorrectly. This isn’t something you should be concerned about as long as you are documenting your actions and are consistent in how you trigger them.