BRouter doesn't have data for every cm but depending on turns, crossings, etc.only in certain minimum distance. I assume BRouter takes the next point in its database according to the distance to the actual selected point by the user. If the user selects two points they can be projected on the same point in the database -> no calculation possible due to seemingly distance=0m.
In addition it can also happen that for the selected profile (e.g. car!) there is no possible connection between the two points. Assume one point in a street, the other one in a pedestrian area, blocked by a pole, ...