M / \ A B * Peer link | * | Customer link RRRRRRR Point1 * * Point2 VVVVVVV
[...] R could request A to provide it with a list of ASes for indirect customers behind A. (R probably already does that.) That would be sufficient information for R's router at the R/B interconnection to tag M's routes as customer routes. Essentially, when R's router at the R/B interconnection receives a route with path "B M", it could use the fact "M is an indirect customer" rather than "B is a non-customer" to tag the route appropriately.
Furthermore, R could provide sufficient incentive for A to provide a list of indirect customers by accepting only registered routes (or AS paths). (This should sound familiar.) E.g. (A) and (A M) routes would be accepted but all other (A *) would not be in this example. Alternately, R could audit routing tables at Point1 and Point2 from time to time, as I mentioned earlier. It ought to be rather simple to find routes which are in Point1 as "exportable" and Point 2 as "non-exportable", or vice-versa. The rest follows. Regards, --John