I am not sure I exactly follow evo2's logic. The first part about the || make sense as an 'or' only requires one side to be true for the whole statement to test as true.
However, I am not sure I follow:
The (( foo )) is for evaluation not testing like [[ foo ]].
From a thesaurus point of view, both evaluation and testing are the same thing and both pairs of brackets do perform the same task, but one is specific to arithmetic '(())' whereas the
other '[]' can be used for either.
As of the more recent versions of bash, it is clearer to the reader to perform arithmetic testing with the round and reserve the square brackets for strings and file testing as reflected
when using the test command.
In answer to the last part of your original question, when using the round brackets it is also clearer to use the typical mathematical symbols, ie. <, >, <=, etc
You do also have the choice when testing in the round brackets to exclude the leading dollar sign as all strings used inside the brackets are looked at as variable names,
so you could have written: