If you want your EBS to return a dickbutt to a panel. Then return a dickbutt to the panel.
The guideline is not, as far as I know, to make it hard to send a dickbutt to a panel. But to reduce the amount of data being sent and received by a EBS to a panel. Which can mean a browser is doing less work to render your Panel, and thus not end up skipping video frames for the stream on the page.
A JSON object is less characters/bits and bytes than a whole pile of HTML.
I don’t use a upd function or equivalent.
My returns from the EBS usually contain a error note, a message, some payload, where the payload contains more than one bit of text. Then I build a div from a template and substitue in data from the JSON object.
Logically one of those bits of data could be a URL to a DickButt (I use URL’s to something else), but you could return a data:image/png I suppose, probably not very efficent