Yes, this is safe - all major browsers support the data URI scheme.
One downside is that if you use the same image a number of times in the page, it will be encoded several times vs downloaded once.
Another is the size limit imposed by some browsers (IE 8 only allows up to 32k).
You can also use this in CSS to mitigate the download issue.
All modern browsers should be able to view these types of images. I have not verified, but this capability has been around for a good while and is probably widely supported.
But you also asked for downsides. One downside is that it is common that HTML markup is dynamically generated and therefore cannot be cached.
More downsides that probably don't relate
This is NOT safe! Using the data URIs in href
no longer works in many browsers.