According to OpenSSH manual (
http://man7.org/linux/man-pages/man1/ssh-keygen.1.html), such ssh-keygen command removes "1.2.3.4" from the current user's list of known SSH hosts. I cannot think of any good reasons to do that, other that executing it manually (and only once) when the server's SSH key has been changed intentionally.
But if it is getting executed every time, it would be a very harmful practice, as it effectively makes OpenSSH's clients bypass SSH server key verification with the server at 1.2.3.4. This disables an essential part of the security provided by SSH and opens the door for man-in-the-middle attacks - making it possible for anyone with control over your network traffic to impersonate the real SSH server to the client and intercepting all your communication.
If this is indeed what you would like to achieve with Rebex SFTP, just don't check the server's key or fingerprint (don't check Sftp's Fingerprint or Sftp's ServerKey, and don't use Sftp's FingerprintCheck event to check them - see
https://www.rebex.net/sftp.net/features/security.aspx#verify-fingerprint for more information). But due to the reasons above, such practice is strongly discouraged.
The recommended practice is for general purpose SFTP/SSH clients should to make sure the SSH server key provided by the server once has not been changed when connecting the next time (and displaying the key to the user on first connection). With Rebex SFTP, this is the responsibility of the application (otherwise, Rebex SFTP would have to keep a database of known hosts similar to OpenSSH client's), but it should not be neglected due to the reasons above.
For applications using SFTP/SSH internally, keeping the server's host key along with the server's host name and port (in a configuration file, database, etc.) is the recommended practice.