Sscalability seems to suffer as a result of TagLibs being implemented as singletons and locking occurring on ExpandoMetaClass.isModified() when the server is processing multiple requests concurrently.
Performance is fine when there is a small number of concurrent requests, but as the number of concurrent requests increases response times increase dramatically.
Locking was noticed by profiling a running application using Your Kit Java Profiler and JMeter to simulate load.
More details are available here:
Obvious fix would be to create new instances of taglibs for each request/thread, but not sure what side effects this would have?