Dijkstra algorithm vs breadth first search for shortest path in graph
BFS does not fail if a cycle is detected. http://en.wikipedia.org/wiki/Breadth-first_search  
Dijkstra's doesn't calculate all paths from A to F either. It stops when it finds the shortest path from A to F.  
In an unweighted graph, you can use BFS to search for the shortest path from A to all other nodes in the same run too! (just don't make it stop as soon as it finds F)
You can use a BFS type algorithm to find the shortest path if you know all lengths are integers less than a 'small' number k in O(k(v+e)) time by replacing every edge (u,w) of length n with a path of n-1 nodes between u and w, the length of each edge in the path is 1.  


Hope this helps.