Using the ERC20 interface directly in solidity will give issues with some ERC20 token contracts because they were not correctly implemented. The list of badly implemented tokens is quite big (and not just obscure tokens) so some additional code to work around this issue is used in most contracts that do calls on ERC20 contracts. It's not a lot of code so it may make sense to do the same in this project.
Using the ERC20 interface directly in solidity will give issues with some ERC20 token contracts because they were not correctly implemented. The list of badly implemented tokens is quite big (and not just obscure tokens) so some additional code to work around this issue is used in most contracts that do calls on ERC20 contracts. It's not a lot of code so it may make sense to do the same in this project.