Well, if `flycheck-checker` is not set, Flycheck just goes through `flycheck-checkers` (plural!) from front to back, and takes the first syntax checker whose major modes and predicates match.

It's quite simple actually, but yes, the order of 3rd party checkers in `flycheck-checkers` effectively depends on the order the corresponding libraries are loaded.  But on the other hand libraries can use the rich list manipulation functions from Emacs Lisp and dash.el to put the new checker exactly where they want to (i.e. at the beginning or front, or beneath a specific checker).