There are systems which I feel have been moving in this direction over the years. One of the early commercial systems was NEXTSTEP. It provided the capabilities to build reusable objects and to some extent, reusable bundles of code. It allowed applications to be smaller because they could interoperate better. However, it was still built on the old "macro" design model. In addition, none of the system objects were replacable. However, it was (and still is) light years ahead of many of the competitors.
OpenDoc is a document centered technology which is the commercial offering which comes close to what I want in a computing environment. It is a system where small tools are combined to form bigger tools based on the needs of the user. There are no more "applications" as they exist on other platforms. OpenDoc also follows a fairly "macro" design model, however, it does achieve many of the goals I think are important.
The BeBox is another innovative solution along these lines. Not enough information is available yet for me to get an accurate view of how the system software works. However, it is designed around objects from the ground up and includes a filesystem which can be accessed as a database. This is a step which many have talked about but few have done so far.
There are also many research systems which have moved in this direction. One of which is Oberon. While I think Oberon is truly an elegant system, I don't think it satisfies enough of the other goals of modern systems. However, I don't think it should, it's a research system, and it certainly has shown me more of what is possible. It is very much a "micro" and elegant design.
I think Programming Language Design is an important part of providing the flexibility for this type of system. There are many Programming Language Projects which are pushing the capabilities of todays systems.