Not sure what are in the docs, but there are two likely failure points with teardown I remember.
1) The teardown method is not actually being called. This usually happens because you created something that behaves like a subview without registering it. Parents only tear down children that are created from the subview hash or that have been registered. This can be tested by putting a debugger in the teardown method of the view in question. If you are doing something crazy in the router, it is possible that the page itself isn't being torn down, but I would be surprised.
2) The subview creates a binding that is not removed by the teardown function. There is no generic 'remove all bindings' function, but the base teardown method gives it it's best shot. If you have created a binding that the base teardown method does not remove, you need to add something to the teardown method of the view that creates that binding. I believe that jScrollpane events are not unbound by the default teardown because there was no generic way to target them without unbinding all of the scrollbars on the whole page.
Hope that helps,
Charles