This depends on what you mean by "secure". Security is composed of the CIA triad, which stands for Confidentiality, Integrity, and Availability. ViolationViolating one or more of those properties is a violation of security. However depending on your threat model, some of those may be more important than others. You might not care if an attacker can delete the logs, as long as they can't tamper with them. Or maybe you don't care about modification at all, and only want to prevent someone from finding sensitive information in them. Specifying that is important in answering this question.
Anyone running as your user or a more privileged user will be able to read your shell history. If the history contains anything sensitive, then they can read that as well. The practice you mention of not passing passwords to commands in arguments is a good practice. Not only does this prevent it from being logged in your shell history, but it also ensures that it will not be visible in the process tree.
While systemd does not keep shell history logs, this same general technique can, in theory, be applied to shell history as well. I am not aware of any extant implementations of this. Additionally, the sealing is done immediately, and an attacker may be able to modify the last 15 minutes (in the case of systemd) of logs. It is theoretically possible to have each line individually signed, but that would add more overhead.