On the contrary. With idempotence you know the state after an action. rm -f will always delete the file (if possible). ln -sfn will always work, even for a directory.
With the default behaviour of rm, ln -s, etc you know neither the state before, nor after.
The option -f is making the script more heavy handed and less likely to fail. But this is not necessary for the script to be idempotent and sometimes is not desirable. You can deal with errors in a more safer way and still be idempotent.
With the default behaviour of rm, ln -s, etc you know neither the state before, nor after.
reply