Is it safe to use a deterministic salt as an input to KDF (Argon2)?
It seem to be a controversial thing to do but I didn't find any convincing arguments against it


It can be a good solution if you can transmit the salt from the server to the client, e.g. in apps or desktop apps and has some nice load-distribution properties.


  the server hashes any recieved password anyway, so no plaintext records in the database


This is actually important so a leaked database doesn't immediately allow for logins.


  Would it make a good salt?


It would work. However the "issue" is that it allows for targeted pre-computation attacks. So suppose you have an adversary who already knows a set of target users. For them they can now pre-compute a lot of password hashes so once the password database is compromised there's a very low latency to password recovery for the targets if the precomputed hashes contain a match. If you're not worried about such attacks uniqueness is the only property required from salts and may be achieved in any arbitrary way.

Indeed if you have control over the client and have bidirectional communication, using a protocol like OPAQUE is preferred as it also hides the salt.