Я не уверен, в чем вы не уверены, наблюдаемое вами поведение задокументировано .
Операция ShellExecute «open» будет делать все, что делает оболочка, когда вы «открываете» файл, на который ссылается аргумент file (вы можете щелкнуть правой кнопкой мыши ярлык и выбрать «Open» явно, но это также операция по умолчанию) для .lnk, так же, как двойной щелчок).
«Открывая» ярлык, он «открывает» цель, если цель - исполняемый файл, который он запускает, если это документ или файл данных, он открывается в связанной программе или запрашивает запрограммируйте, если ни один не связан.