Yes. Suppose that I am "M", and I have two providers "A" and "B". The links M/A and M/B are expensive international links, much lower bandwidth than I would like, and prone to congestion. Further suppose that A is a customer of R, and B is a peer of R. For load balancing reasons, I would like R to send some of my traffic via A and some via B. Since I pay A and B for transit, and A pays R for transit, and A and B both agree to play along with my desire to load balance, it's reasonable for us to ask R to do this.
From R's point of view, their customer A and their indirect customer M have asked them to treat peer routes (via B) and customer routes (via A) to destinations in M as being equivalent.
This is just plain difficult to orchestrate, if one asks R to treat some subset of peer routes as transit routes. Far better to adopt the reverse solution of having R de-preference the routes received from A to be an equivalent localperf to those received from B. That is, give special treatment to a subset of customer roues, and continue to treat all peer routes the same. RFC1998 provides a very nice example of this, as implemented by one provider (MCI). Nevertheless, this is not a panacea. Peers of R may still receive routes with different as-paths, but as-path lengths and origin codes (which matter for selection) should at least be the same, which should be sufficient. --jhawk