Pharo uses a pure object-oriented model where everything is an object, including classes. There is single inheritance and only message passing between objects. Classes are objects themselves that are instances of metaclass objects. Method lookup involves searching the receiver's class and its superclass. Packages can contain methods defined on classes in other packages, providing flexibility.