OK, I think I have (sort of) a better answer. I went ahead and changed my launcher (similar to a Windows shortcut) to launch 21 instead of 18. Immediately the problem went away, even if I had the P4DIFF variable set. I am not a Linux or xfce or shell guru, but I suspect that the launcher doesn't run ("source") the startup file which has the environment variables. Or putting it another way, SlickEdit isn't running from within a shell in that case. (Yes, I can see the variables in SlickEdit's process buffer, but I think that's just because SlickEdit starts that buffer using a shell, so it DOES run the .cshrc startup file). (In case I haven't said this, I shut down and start SlickEdit after each of these tweaks). Here's the final kicker: if I run SlickEdit 18 directly from the interactive terminal, it has the same problem!!!
So this entire thing is nothing new after all - the problem was just a side effect of running SlickEdit in a way that I don't normally run it (directly from a terminal window rather than from a launcher button). So I hope I have diagnosed a real problem for you guys (which happens if someone runs from a terminal and has the P4DIFF environment variable set to SlickEdit's diff tool), but it doesn't affect me at all, since I don't normally run that way!