Here is a draft of camlp4 extension warning on value shadowing :
  http://bluestorm.info/camlp4/dev/pf_shadow/list.php

You can use it as a preprocessor to your source file, and it will raise warnings on value shadowing.
For example (more examples in the test.ml file), your input gives the warning :
<W> File "input.ml", line 4, characters 6-8: shadowing binding 'xs' from File "input.ml", line 2, characters 8-10

Recursive bindings are handled, but classes, types and modules are not : it is a reasonable proof of concept, and if somebody is interested in more exhaustiveness, i (or whoever) could probably extend it easily.