Here's a question: does <a4j:include> modify the component tree on the server as well as the client-side DOM? In other words, if I refresh the originating page (which includes the <a4j:include> tag), should I expect the view to revert to its original state?

JSF Portletbrindge restores view tree at the all render request, so this behavior should work same as in the servlet. You can bind "src" attribure to a bean read/write property to store current page in the session-scope bin. a4j:include component will update this property instead of the internal attribute.