In Commander interface, WinSCP uses by default Norton Commander-like selection of files. I.e. selection that is not cleared when focus is changed. To implement it, WinSCP needs to prevent unselection of items in list view by triggering LVN_ITEMCHANGING message. This works fine until Windows XP. In Windows Vista there is bug. Once unselection is prevented, list view forgets the selection internally, preventing iteration over selected files. To overcome that, in 4.0.4 workaround was implemented. When WinSCP detects Vista OS, it keeps track of selection itself.
But when WinSCP is executed in compatibility mode, it fails to detect Vista. And unfortunately the bug is present even in compatibility mode.