When implementing DIP, the higher layer (which exposes the interface that the lower layer will implement), can therefore write reusable code that handles any implementation of this exposed interface.
At best, Wikipedia could've better said "encourages code reuse inside the higher/policy layers", but that is what it already intends to convey and the two variants are synonymous enough.
In the current phrasing on Wikipedia, I suspect you've misinterpreted it to imply that the higher layer gets reused by multiple consumers. It doesn't.
But DIP does enable the higher layer to write its own code more reusably, and that's what Wikipedia means.
As a very basic example, if your domain (higher layer) exposes a IFooRepository
that will be implemented by one or more database projects (lower layer projects), then your domain can write IFooRepository
-handling logic once, no matter how many implementations of IFooRepository
exist, in no matter how many lower layer projects.
Therefore, the domain logic for IFooRepository
is more reusable than it would've been without DIP.
Because without DIP, each lower layer project would expose its own interface to the domain, and the domain would've had to handle these different interfaces individually. That's less reusable.