While yes, the developer setting s.eVarX to a value should work, it should get picked up by your page views (but not your actions unless you explicitly add the eVar to your link/action tracking calls using s.linkTrackVars); but as you said, if the expiry is visit, then the value will persist on your links/actions.
However, there are some considerations:
- If the s object isn't yet initiated when the developer tries to set s.eVarX to the value, then you will miss the data
- If the first call on the site is a link/action (i.e. this triggers before the first page view), then there won't be a value for the first hit
Like @Sumit-Kumar, I would be more tempted to have the developers set a session or local storage value (or modify your data layer to include the information), and use Launch to pick up the value from there, and set the eVar yourself in your implementation.