Why can't we run Bellman Ford from the source and relax edges out from the neighbours recursively and do a single pass through the edges?
This would work, with a minor modification.  In other words, the resulting algorithm would be correct: it would correctly compute distances.

However, it doesn't help much.  It doesn't change the asymptotic running time of the algorithm.  In many graphs, after about $O(\lg n)$ iterations, essentially every vertex is reachable from the starting point.  Therefore, you might save a little bit on the first $O(\lg n)$ iterations, but after that, you still have to relax all edges.  Thus, this makes only a minor improvement -- far too small to show up in the asymptotic running time.  And, in practice, on most graphs, the improvement will probably be small -- perhaps so small as to be outweighed by the extra bookkeeping required.

Finally, this makes the algorithm more complicated.  From a pedagogical perspective, when the purpose is to teach algorithms, unnecessary complications are best avoided, as they just make it harder to understand an already-challenging subject.

The minor modification you need to make is: in the $k$th iteration, relax all edges $(u,v)$ where $u$ is at most $k$ edges from the source [rather than where $u$ is exactly $k$ edges away from the source].  This is important, because the shortest path from $s$ to $u$ (the one where the sum of the distances on the edges in the path) need not be the same as the path from $s$ to $u$ with the fewest edges.