Louis,
No, this is not a bug with Mathematica. It's using the memoized values, just as we would expect.
I'm having a hard time mapping your algorithm to that problem, so I'm not sure how to help you correct your algorithm. A brute force method would start from the realizations that any sequence of jumps could produce the croak sequence and for most starting positions there are 2^15 jump sequences, and so finding the probability for that particular croak sequence is a matter of counting the number of occurrences among all of those jump sequences (repeated for each starting point).
So, I'd decompose the algorithm into a function to give me all jump sequences of length N (so I can start smaller than the specified 15), a function to turn those into the associated integers for a given start point, map that across M cells (so I can start smaller than the specified 500), and a function to count occurrences of a target croak sequence (which I will set to simpler test cases in the early phase of developing the algorithm). With this decomposition and complexity reduction, it's easier to correct bugs before attempting the full problem.
But that's a brute force approach...