ForGroup and ForForce desync w/getlocalplayer

The ForGroup and ForForce natives cause desyncs without fail when used in GetLocalPlayer blocks. I know GetLocalPlayer is supposed to be used with caution, as it is prone to desyncing, but I’m reporting this specifically because in blizzard.j there’s this function:

function SelectGroupForPlayerBJ takes group g, player whichPlayer returns nothing
    if (GetLocalPlayer() == whichPlayer) then
        // Use only local code (no net traffic) within this block to avoid desyncs.
        call ClearSelection()
        call ForGroup( g, function SelectGroupBJEnum )
    endif
endfunction

which notes that you should only use async code in getlocalplayer blocks to avoid desyncs, and then it uses the ForGroup native anyway, which always causes desyncs when used this way, so it seems that ForGroup and ForForce are intended to be async, but are in fact not. This also means that the “Select Group For Player” GUI action is useless in multiplayer, as you cannot use it without desyncing.