Hi Martin,
Yes, this sounds right. About point 2, note that there is nothing magical about Form Runner: for any app, the theme.xsl that is inside that app directory, if there is one, is used in place of the one pointed to by oxf.epilogue.theme. You can see that logic implemented in XPath in:
https://github.com/orbeon/orbeon-forms/blob/tag-release-4.10-ce/src/resources-packaged/config/epilogue-servlet.xpl#L71Alex
--
Follow Orbeon on Twitter: @orbeon
Follow me on Twitter: @avernet