I have the following rule for Book pages: book/[bookpath-raw]/[title-raw]. I guess it's a reasonable choice for books, but I have a book with a lot of subpages, so the paths are long. This means, they get truncated. One would expect that -0, -1, etc should appear at the end of the paths, and for mostly it works. However, let's see the paths I got after auto-generation:
book/operator-kezikonyv/szemelyi-ugyek-regisztraciok/operatorra-valas-lepesei/4-a-dc-n-kivuli-vila-0 node/578 book/operator-kezikonyv/szemelyi-ugyek-regisztraciok/operatorra-valas-lepesei/4-a-dc-n-kivuli-vila-1 node/579 book/operator-kezikonyv/szemelyi-ugyek-regisztraciok/operatorra-valas-lepesei/4-a-dc-n-kivuli-vila-2 node/580 book/operator-kezikonyv/szemelyi-ugyek-regisztraciok/operatorra-valas-lepesei/4-a-dc-n-kivuli-vilag node/377 book/operator-kezikonyv/szemelyi-ugyek-regisztraciok/operatorra-valas-lepesei/4-a-dc-n-kivuli-vilag/ node/577
The auto-generated path for node 377 is a complete path, not truncated, because that's the "parent" of the other book pages listed here. However, the path for node 577 is truncated because it's too long to fit. Unfortunately, the length of the generated path for node 377 is "allowed length minus 1", so when the path is generated for node 577, it becomes longer by a single character which would be the /-sign. For pathauto, these are different paths, so no -0, -1, etc is added. But when you try to visit it from the browser, you are always redirected to node377 because for browsers http://www.google.com is totally the same as http://www.google.com/ .
I think the solution would be to verify is the generated path ends with /. If it does, then it should be truncated, and if the truncated path already exists, -0, -1, should be added. I assume that during normal usage this only can happen when you use / as a spearator in the middle of a path, not sure if any other "normal" use case could trigger it.