No problem, let's get into this a bit.
While you may not get the same answers (as you have no ORDER BY to make the results determinant), each of the answers is correct for the query asked...the planner just has multiple choices in how to fulfill this, and the different choices it makes can lead to a different result set since you're limiting the results.
Patterns in your query often present multiple different ways in which they can be solved. The planner attempts to pick what it thinks is the best plan, but metadata metrics don't always capture everything it needs to know (and there is always tuning that we can do to improve on our side too), so sometimes it chooses a plan that isn't ideal. Looking at the EXPLAIN plans (or PROFILE if we are able to run them) can help us understand how the planner intends to solve the query.
In this case, the planner wants to also lookup connectedNode:Sentence
by label, but doing so creates a cartesian product operation, resulting in 10 rows (each one a pairing of a distinct :Sentence node and the exact same startNode). The behavior of the rest is to find, per row, all possible paths that exist between that pair of nodes on that row.
Without the label in the pattern, a label scan won't be used, and the planner decides to only use the startNode as the only anchor node, so the expansion out is only performed for that single row. It will find all possible paths that can exist, of any length (even if they loop back to already-visited nodes, as long as you're not repeating any relationships per path) as long as the end node is a :Sentence node.
(Note this means that when you UNWIND the paths of all relationships that occur in all the paths found, you will definitely have duplicates (the same relationship may be used in an entirely different path), so be aware of that)
I get a strong feeling that what you want of the query is very different than what you are asking the query to do.
What you are asking in that query (throughout the course of it) is to find all possible paths of any length as long as they start at the startNode and end in a :Sentence node (with a LIMIT controlling how many are returned). You will naturally be traversing the exact same relationships, not per path, but across all the possible distinct paths that it finds.
You would be surprised how many possible distinct paths can exist even in a tiny graph. In the movies graph that you can play with using :play movies
, there are 171 nodes and 253 relationships. Distinct paths in this graph (where the only restriction is that a relationship cannot be traversed more than once per path) can stretch into the 10s of millions or higher.
If that behavior is not really what you want the query to do, then the real question is: what is it you ACTUALLY want the query to do? Once we understand your use case better, then we could change the query so it uses an efficient means to better match your requirements.