Off the top of my head, I think you could use just the pyglet opengl bindings, (no sprites) with opengl 1.4. That was a long time ago, though and I haven't touched hardware that old in a long time to test if that is still true. AFAIK, there is no GUI library for pyglet, so if you plan on doing that, you'll certainly be doing a lot of manual work there.
Ben, currently, pyglet sprites have some real performance issues mostly because of the way math is used. Any change to X, Y, Scale or Rotation will trigger the vertex updates. When most programmers will do something like the following, it causes excessive CPU use:
for sprite in sprites:
sprite.x += dx
sprite.y += dy
sprite.rotation += dr
So for each sprite, the math update was triggered 3 times, when ideally it would have been done just once. Its an issue that needs documentation, or new API, or perhaps smarter checks to do the math when needed, instead of on each attribute modification. Shaders would be nice, but pyglet developers are few and far between...it would possibly require more upkeep than the community can cope with to maintain shaders with the moving target that GPU shader programming is (just my thoughts on that).
IMO, a better solution to slow sprite math would be an optional 'pyglet acceleration library' written in cython to handle the math. Less burden on the developers to maintain compatibility with OS drivers.