/bin/ is not a symlink to
/usr/bin on any FHS compliant system. Note that there are still popular Unices and Linuxes that ignore this - for example,
/sbin are symlinked to
/usr/bin on Arch Linux (the reasoning being that you don't need
/bin for rescue/single-user-mode, since you'd just boot a live CD).
contains commands that may be used by both the system administrator and by users, but which are required when no other filesystems are mounted (e.g. in single user mode). It may also contain commands which are used indirectly by scripts
This is the primary directory of executable commands on the system.
/bin contains executables which are required by the system for emergency repairs, booting, and single user mode.
/usr/bin contains any binaries that aren't required.
I will note, that they can be on separate disks/partitions,
/bin must be on the same disk as
/usr/bin can be on another disk - although note that this configuration has been kind of broken for a while (this is why e.g. systemd warns about this configuration on boot).
For full correctness, some unices may ignore FHS, as I believe it is only a Linux Standard, I'm not aware that it has yet been included in SUS, Posix or any other UNIX standard, though it should be IMHO. It is a part of the LSB standard though.