I know the reasons for using transfer vs transferFrom but made the mistake of using the second one whilst doing some testing and I got the error "ERC20: transfer amount exceeds allowance". The sender was the same address as the signing wallet so to me this would feel the same as using the transfer method as the signing wallet at that point is basically trying to send its own tokens.
Is there are particular reason this design decision was chosen?
Obviously I can call approve on my own wallet for my own tokens and then use the transferFrom function, but this feels slightly counter intuitive. If the transferFrom function had a check ie
if(msg.sender != sender)
In this case it could then check the approved amount. If this was the case then potentially the two could be used interchangeably. Although I do recognize that having then two functions that perform the same operation would also be counter intuitive.
This is more a point of curiosity and I can't find any info that explains this.