As with all style questions, much of this surely comes down to personal preference. Most of your questions probably don’t have an answer better than “someone else prefers it that way.”
This one though, does have a technical reason:
Assertions are generally assumed to be optional for internal consistency checks and can often be disabled. @assert doesn’t have that capability — not yet — but it might in the future. Thus the warning in its documentation:
https://docs.julialang.org/en/v1/base/base/#Base.@assert
An assert might be disabled at various optimization levels. Assert should therefore only be used as a debugging tool and not used for authentication verification (e.g., verifying passwords), nor should side effects needed for the function to work correctly be used inside of asserts.