http://members.hyperlink.net.au/~chart/agpinfo.htm
The 'traditional' PCI bus that we are all very familiar with is rated to a maximum speed of 33 MHz. (without overclocking). The PCI bus standard, however, allowed for an optional extension of the design (with a longer connector) which operates at 66 MHz. This optional extension of the standard was very rarely ever implemented by anyone, even though it offered a theoretical doubling of PCI performance. (I saw it once on a Gigabyte board, I think, but I've never seen a 66 MHz card, ever).
When the AGP standard was designed, very little was altered from the PCI standard (which AGP is based on). The main changes that AGP implemented were to finally recommend the utilization the optional 66 MHz extension offered by the PCI standard, and for some reason the connector was also changed physically (electrical signal-wise it's virtually identical). AGP also introduced a new host bridge standard that removed some of the bottlenecks between the AGP bus and system memory, which in itself accounts for some speed improvements on 3D cards, but really doesn't help things any for text or 2D graphics. (It was mainly put in place to allow fast updating of textures on 3D accelerators).
The downfall of this simplistic 're-hashing' of PCI to create AGP was that the standard was actually too flexible. Rather than making 66 MHz mode a requirement, it was left optional (just like in the PCI standard)!! What all this means that a hardware designer can take an existing PCI design and re-hash it to work on AGP in a very short space of time, with virtually no alteration of the design at all. Think about that for a moment. It may physically be an AGP card, but it doesn't have to support 66 MHz. If it isn't running at 66 MHz, it must be running at 33 MHz; the exact same speed as a PCI card!!! In other words, there is ZERO percent improvement over a PCI based adapter!!!
Granted, the AGP bridge may offer some improvement by way of bottleneck reduction, but this improvement is probably negated by the fact that the same software drivers, unaltered, are undoubtedly also in use. If the drivers aren't optimized for AGP, then there is a huge wasted potential since all the 'extra' features of AGP can't be called on: i.e. AGP 2x mode, sidebanding, fastwrite transfers, etc etc.