The original poster is asking why the documentation says the interceptor is called twice with the configuration he posted (see his link).
The way I understand it, the "params" interceptor is invoked once explicitly in the configuration above, then invoked again in the "basicStack" (see the default configuration).
As to why one would do this:
A typical use of this is to run some logic to load an object from the database so that when parameters are set they can be set on this object. For example, suppose you have a User object with two properties: id and name. Provided that the params interceptor is called twice (once before and once after this interceptor), you can load the User object using the id property, and then when the second params interceptor is called the parameter user.name will be set, as desired, on the actual object loaded from the database.