In WinBoard, there is the option -autoLogo. This looks in the engine folders given by -fd, -sd for a file called logo.bmp, and if there is one, displays it when the engine plays. (And if one of the players is not an engine, it looks in the sub-directory 'logos' if it finds a file <username>.bmp or <icsname>.bmp, and displays that.)
Now for XBoard this scheme would not work at all: on Linux, compliant engines are all in the same folder, /usr/games (or perhaps distributed over a few more, like /usr/local/games). Now each engine might know where to find its data files, but it won't share that info with XBoard, and it is asking a bit much that XBoard would be able to derive this by itself. The more so because a compliant engine is likely to be installed simply by its command, like 'fruit', so that XBoard won't even have the slightest idea where the binary acually is (except that it is somewhere contained in the PATH).
An alternative scheme would be to put all engine logos in a 'logos' folder belonging to the XBoard private files as well, under a name derived from the engine name, like fruit.xpm or Fruit_2.1.xpm. (Similar to how Polyglot decides on the name of the polyglot.ini files.) This, however, would make it more difficult for engine packages to install their own logo. And logos are not really XBoard specific; it is conceivable that other interfaces could use them too. So it would be nice if there was something like /usr/share/games/logos/100x50, where each engine could install a logo pixmap, and GUIs could look there if they want one.
should actually start the engine and derive the installation path
for the logo from the engine name. So there should be an argument
saying which protocol the engine uses. Something like