transferFrom in ERC20 and ERC721

Hi there, in ERC721, the function transferFrom does check if from is the same with sender, however, in ERC20, the function transferFrom does not check that, but only require allowance is sufficient, even for the sender himself, i.e., to use transferFrom for an ERC20 token, the allowance of sender to sender must be bigger than amount. Is this redundant? Would it make sense to check if sender is owner in ERC20 as well just like in ERC721?

Found this function in a contract in the repo of Pancakeswap here, the transferFrom function is implemented similar to what is described above.

function transferFrom(address src, address dst, uint wad)
public
returns (bool)
{
    require(balanceOf[src] >= wad);

    if (src != msg.sender && allowance[src][msg.sender] != uint(-1)) {
        require(allowance[src][msg.sender] >= wad);
        allowance[src][msg.sender] -= wad;
    }

    balanceOf[src] -= wad;
    balanceOf[dst] += wad;

    Transfer(src, dst, wad);

    return true;
}