Fingerprinting using IP address, running scripts, canvas fingerprinting, using installed fonts, and checking what resources are cached/blocked are all things that are being widely used in many websites, and are not just "theoretically possible".
They are even being sold as a product and are used by many companies.
Look at their customers - https://fingerprint.com/ .