https://en.wikipedia.org/wiki/Topological_sorting#Depth-first_search
The DFS solution to this problem has a O(V+E) time complexity. But why is not just O(V)? Yes we visit every vertex and every edge, but every edge just leads to another vertex, it's not an additional step. For example, if we have 2 vertex, with one edge between them, then we visit 2 vertex, period. We don't visit 3 things (2 vertex + edge). Give me an example of DAG where 'V+E' results in more visit than just 'V'
To strengthen my argument, the time complexity of a DFS on a binary tree is O(N), where N is number of nodes. No one says it's O(N+E).