Unix and Linux try to structure the thousands of files in a standard way. https://refspecs.linuxfoundation.org/fhs.shtml
Historically the /usr directory was on an other partition and got mounted to / during the boot process. The boot process made use of /bin, /sbin, /lib and /lib64.
Modern approaches do not separate required from not-required directories for the boot process anymore. Everything is in /usr that has to be available during the boot process. For backward compatibility symlinks are added in the /bin, /sbin, /lib and /lib64 directories pointing to /usr/bin, /usr/sbin, /usr/lib and /usr/lib64
In the root directory the following directories should be present and used in the proposed way:
/bin
System binaries and binaries required to boot
/boot
Boot loader and kernel
/dev
Device files
/etc
Configuration files and boot and runlevel scripts
/home
All regular users
/lib
Shared libraries. In/lib/modules are the kernel modules
/lost+found
Stuff that fsck found
/media
Mounting point for removable media devices
/mnt
Mounting points for temporary file systems on other media.
/opt
Additional program packages. Alternative /usr/local
/proc
Information about running processes
/root
The home directory of the user root
/sbin
System administration binaries and binaries required to boot
/sys
The kernel exports information about devices and drivers to this directory.
/tmp
temporary data mounted as RAM disk using tmpfs. Alternative/var/tmp be aware that this
directory gets wiped off when booting the system.
/usr
Static read only user data (/var should hold the dynamic), kernel source
/var
Dynamic data log files, printer spool, mail
To observe directories it might be handy to emerge app-text/tree and use it as tree /var/log.