Given a directed acyclic graph (DAG), is there a known polynomial time algorithm for enumerating all paths between a source and a sink node?
I can understand that there may be exponential number of paths between the source and the sink, so a polytime algorithm for enumerating them is difficult.
In that case what is the proof that enumerating all paths between source and sink in a DAG is NP-hard?
The number of paths in a DAG may be exponential, but it can be represented in polynomial space.
In fact, it is easy to calculate: Just run through all of the vertices in topologically-sorted order and for each vertex compute how many paths end there. This is $1$ (for the single-vertex path) plus the sum of the number of paths that end at each of its predecessors. So counting them is in P.
If there are many different paths, you cannot hope to enumerate them all in polynomial time. You can enumerate them in linear space (just enumerate all subsets of vertices and check whether each of them form a path). Or you can number the paths sequentially and convert an arbitrary sequence number to a path in something like $O(n\log n)$ time.