Page A contains an <s:link> to go to page B. Page A has a page action defined in pages.xml. When I click the s:link on Page A, to go to Page B, it invokes the page action for Page A before redirecting to Page B. If I replace the s:link with an h:commandLink, it works as I would expect it to, i.e., no page action for Page A.
I have now retested and I have this scenario in multiple instances within my application. In most cases, I didn't even realize that it was invoking the page action for Page A, as by luck the method was designed such that it did not throw an exception or cause any other noticeable problems. However, I finally noticed this behavior when my luck ran out and I wrote a page action method that threw an exception when called unitentionally in this situation.
Is this perhaps a bug in s:link or am I not properly understanding and utilizing its capabilities?