You don't "lose" clipboard data. It just gets overwritten with new data and by default you can't access old data since it's stored as a single record in RAM. There are better ways to track it, though, one is listed later.
It's because the system can't fully know what exactly you want to paste and there's only single Ctrl + V shortcut for that. Applications can be coded to check for specific formats and handle all of them properly, if needed. So it's up to the user to decide what's the last item. And up to the application to notify the user if the current format is supported, unfortunately a lot of them just do nothing if a paste of unsupported format happens.
Question/answer textboxes on this website are a good example. You can have text (
CF_UNICODETEXT type) as last item and it'll be pasted as text. You can also have image as last item (
CF_DIB type) and it'll upload an image. Or you can have a file copied from Windows Explorer (
CF_HDROP type) and pasting that will do nothing, as regular non-image file upload is not welcome here.
To compare, if you compose a mail in let's say Gmail, all of these types will be supported.
CF_TEXT will still paste text.
CF_DIB will still paste inline image. However,
CF_HDROP will be handled better this time and sent as an attachment.
You can read more about types/formats available in Windows here.
You can use advanced clipboard managers like Ditto to get around this limitation:
- by default, the access to history of items is much easier - through a list you can display and manipulate (e.g. with a shortcut to go to next item) - and you can further configure it if needed
- you can also configure 3 additional special copy buffers to use for different types of storages. In
Copy Buffers you set 3 key binds for each buffer (separate list): copy, paste and cut. Let's say you define it to be the traditional shortcuts + Shift. Then you can copy all files to the newly defined buffer with Shift + Ctrl + C and your main clipboard will still contain text. This can be helpful for certain workflows.
And on Linux there's CopyQ.
Why do systems themselves not implement multiple buffers? Various reasons that get into "opinion-based" territory, but a fact is that they introduce clutter in terms of extra keyboard shortcuts/buttons if their usage should be comfortable, and cluttering systems of users that don't need this feature wouldn't be great.