Do synonyms affect remote query performance
A synonym is just a pointer and gets simplified away prior to optimization. If you have this:

CREATE SYNONYM dbo.foo FOR OtherServer.db.dbo.blat;


Then these two will optimize the same, producing identical execution plans (both having a Remote Query operator that points at blat):

SELECT bar FROM dbo.foo;

SELECT bar FROM OtherServer.db.dbo.blat;


You can test this quite easily.