I understood. I no longer have the lastpass csv that I used to import. I just tried exporting from lastpass again, and didn’t see duplicates in the csv. Unfortunately, importing that csv did not reproduce the bad BitWarden vault, with the duplicates, that I had before. It’s possible there’s a nondeterministic lastpass bug that duplicates on export, but that would imply I also encountered something like buggy BitWarden UI or sync behavior when I performed this sequence of actions (elaborated description from original post) earlier today:
export to bitwarden json → run a personal script to dedup the json → purge vault → refresh web vault page, which causes another master password prompt → see apparently-empty vault with “There are no items to list” message, which I took as verification that the purge was successful → import deduped json file → refresh web vault page again, same as before → see vault with many entries quadrupled.
If I manage to reproduce, I’ll open an issue. Thanks for the pointer @djsmith85; I’m convinced now it’s a subtle enough issue that it would be premature to start scanning the source code. Thanks @dh024.
Done them all. Made sure there were only single entries in Lastpass. Cleared the vault three times and purged before importing. No luck.
Finally, I just opened it on my desktop machine and manually deleted alternate entries. Going forward, I will manually add rather than import because I am using BW in my mobile devices and LP on my desktop.