Not quite what I have.
CAB, This will rock you a little perhaps < or not > ...
The REMOVE_DUP2 is the same as yours, with the MEMBER changed to VL-POSITION.
.. so the difference will be in the MAPCAR and LAMBDA where I used FOREACH
The test list was a list of duplicate DWG name strings [ 2 instances of 25 for a total of 50 ]
Benchmarking ................Elapsed milliseconds / relative speed for 8192 iteration(s):
(REMOVE_DUP FULL_LIST).................5938 / 3.1203 <slowest>
(REMOVE_DUP2 FULL_LIST)................4236 / 2.2260
(REMOVEDUPLICATESTRINGS FULL_LIST).....1903 / 1.0000 <fastest>