With a little effort you can use custom icons. Make some icons, for example at the page title level, right click in this custom icon and copy the url. This way, you have an icon url that ‘lives’ on the coda server.
Use this icon url in the button label. It is not really great with text, but if you just use the icon, it works quite well:
The button label looks something like this:
concat(Image("https://codaio.imgix.net/workspaces/ws-oLu3Oh4iEc/blobs/customIcons/e5225ca4-709c-4258-9df8-dfradawdasde",48,48),_bold(" custom icon"))
or
concat(Image("https://codaio.imgix.net/workspaces/ws-oLu3Oh4iEc/blobs/customIcons/e5225ca4-709c-4258-9df8-dfradawdasde",48,48,"custom icon",style:"circle",outline: true()))
Custom icons in buttons is well and truly overdue IMHO.
Surely we shouldnt have to jump through the hoop of hosting an image externally (or various other techniques such as trying to discover and modify the url of an image in a table)-
Ideally, implement allowing custom icons selection from the button icon property
or expose the url of a custom icon by right clicking an icon from the icons list available in workspaces (and then having to kludge by using that url as as in your post to concat it with text)