Just to tease out my problem a bit more...
If I use the following code:
const userLink = {
name: "systemuser",
from: "systemuserid",
to: "a1a_assigneduser",
linkType: "outer",
alias: "assigneduser",
};
context.parameters.workflowDataSet.linking.addLinkedEntity(userLink);
context.parameters.workflowDataSet.addColumn("entityimage_url", "assigneduser");
The column is added successfully, but the following filter is added that stuffs up filtering:

My workaround is to add a dummy column from the related systemuser table, retrieve its alias and then use that to add my column like this:
const linkedEnts = context.parameters.workflowDataSet.linking.getLinkedEntities();
const systemuserTable = linkedEnts.find(x => x.name === "systemuser")
context.parameters.workflowDataSet.addColumn("entityimage_url", systemuserTable?.alias);
I have to do this because the alias isn't 'systemuser', but some random guid that changes on deployment - it would be great if it wasn't. This workaround creates a bug when filtering - when I expect 5 records to be returned the totalresultcount will be accurate, but it will return a full 'page' of data regardless. In my instance that's 50 records as seen below.

Anyone have a better solution?