Why is PyCLIPS referred to as bindings to the CLIPS Shell and Library?

Mostly for historical reasons. If you look for the term expert system shell on Wikipedia, you are redirected to the page titled Inference Engine, since the two concepts were tightly coupled in the past - probably no one thought that an inference engine could be implemented as a library, and almost all available engines were in the form of a command line interpreter. On the other hand, CLIPS provides both access methods: a simple command line (a shell, in other words) and the possibility to be embedded as a library.

PyCLIPS takes advantage of this second way of using CLIPS, but in order to provide also a means to use the engine more or less interactively, through the Python interpreter, it gives the possibility to send complete commands to the library as if it were a standalone interpreter using the SendCommand() function, and to read what CLIPS provides as output using the so-called streams mentioned in the documentation. Although this is a side effect, I consider it an useful feature.

Moreover, it is now possible to use a simple script to implement a basic CLIPS shell in PyCLIPS, and to enhance it to implement new features into CLIPS itself.