I don't agree about those pages not being stateless. They are not
stateless in that the actual state of these *pages* - not their
buffered renderings - is not relevant. There is no component state
that we have to keep to interact with the user, the only thing we are
keeping that buffer for is to trick the browser.
the entire point of having a page stateless is that it stores nothing in session. if we are storing the buffer it eliminates the point.
But... as I commented earlier, I think we can do without the buffer
for stateless pages anyway, as - certainly for bookmarkable pages -
there is no need for what is officialy called the redirect after POST
pattern (but which in our case is also applied to GETs). Instead of
just applying this pattern mindlessly to every request, we could try
to be a bit smarter and only use the pattern when we actually need it.
but we do need to apply it to get. the point of redirect after post pattern is to present the user only with read-only urls. that means refreshing the page does not cause any action to be performed only data read from the db or whatever. so we need to do this even for links because we should not have the interface invocation left in the url since refreshing the page will again perform the action on the link.
-Igor