Currently scroll-tablelayout is a user macro executing the scroll-pi macro. This has several drawbacks:
User macros are slow because the complete render chain must be processed again for the content, which is absolutely unnecessary in this case.
May cause big slowdowns if many tables are on one page
When the user macro renders, it is unclear which exporter plugin's instance of the pi macro is called, because the SourceTransformer might not be able to perform macro prefixing in this case.
This is not a real issue right now, but it will cause classloading issues when using thread locals in the macro implementation or when trying to fetch a plugin-local class from the request attribute store.