The core reason is compatibility. Many systems — email protocols, HTML, JSON APIs, XML documents — are 8-bit clean for text but were never designed to handle raw binary data. Base64 encoding ensures that the data remains intact during transport, regardless of what systems it passes through.
Common real-world uses include embedding images directly in HTML or CSS, passing binary files through APIs, storing small assets inside JSON payloads, and encoding authentication credentials in HTTP headers. Any time binary data needs to move through a text-based channel, base64 is usually the right solution.