After out-of-hand saying "no" once, I had someone offer me a contract by way of a friend. I valued the friend so I met with the client. About half way through, the client's (a large-ish health org) point-of-contact asked about my internet connection because they wanted me to remote desktop into their windows-citrix-machine-thingamputer for "billing purposes"... it was an iOS(in swift) developer role.
I didn't say anything about how preposterous that was and politely declined in email after the meeting. Or so I thought. I, apparently, did so much talking with my eyebrows that it got back to my friend... we broke out laughing when I explained what caused be to be "visually rude" (whatever that means).
When there is one red flag, there are bound to be others.
I ended up writing an email to the decision markers in the project outlining why "1) I didn't want a VDI 2) A VDI would take me forever to setup properly for my workflow anyway* 3) It would do nothing for the project's security to have me working on a VDI and 4) It would be a pain in the but trying to work on a VDI.
I was told that my objections were valid and true but I needed to work on a VDI anyway. It was at that moment I stopped caring about the project.
I did end up winning in the end however as when I finally agreed to do it (not my money the company was setting on fire) they asked me to send a list of what I'd need my VDI to be setup like. So I sent them a list of everything I'd need to mimic my current working environment and what I was doing now, including a Linux OS (The VDI solution was Windows only) with X11 and i3 setup. A full Doom Emacs configuration, special developer libraries and tooling, and several other items. With a long list of alternatives I would need installed if my first choice wasn't available, with specific versions, etc.
I sent off that email and they said they'd set me up with the desktop environment I need and let me know when it was finished being created. I am still waiting for that email letting me know it is setup, and happily working from my real machine until it does become available.
The moral of the story is sometimes the easiest way to thrawt management incompetence is to throw it reams of useless busy work that it will be festering away on while you can get real work done.