EIP-20: should I emit Transfer event in this balance change?

function _transferStandard(
       address sender,
       address recipient,
       uint256 tAmount
   ) private {
       (
           uint256 rAmount,
           uint256 rTransferAmount,
           uint256 rFee,
           uint256 tTransferAmount,
           uint256 tFee,
           uint256 tTeam
       ) = _getValues(tAmount);
       _rOwned[sender] = _rOwned[sender].sub(rAmount);
       _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
       _takeTeam(tTeam);
       _reflectFee(rFee, tFee);
       emit Transfer(sender, recipient, tTransferAmount);
}

function _takeTeam(uint256 tTeam) private {
       uint256 currentRate = _getRate();
       uint256 rTeam = tTeam.mul(currentRate);
       _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
}

For this line, _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);

This code snippet is quite common among many ERC20 implementation (Does anyone know where it came from?), is this expected behavior or not?

According to the doc: EIP-20: Token Standard, The transfer event MUST trigger when tokens are transferred. I assumed that this line of code represents the balance transfer from sender to the address(this). But it does not emit a Transfer event.

They have coded a fee on transfer token.
These type of tokens can have unexpected consequences, see: Incident with non-standard ERC20 deflationary tokens | by Mike McDonald | Balancer Protocol | Medium

Thanks for sharing this excellent blog. Besides this, I am wondering the whether or not the balance change should emit Transfer event in the above example!