Enum flags ought to be combined the way you did, using the vertical bar | operator in C#, or using the Or operator in VB.
It works because I added the following lines of code to the layout algorithm, because I knew there are people like you
'Fix illegal Obscure-only flags
If (exp0 = 0) Then exp0 = GH_Exposure.septenary
If (exp1 = 0) Then exp1 = GH_Exposure.septenary
So GH_Exposure.obscure is automatically converted into GH_Exposure.septenary | GH_Exposure.obscure, which is probably not what you want but it prevents the layout logic from choking.
Thanks for the explanation
Tried GH_Exposure.primary|GH_Exposure.obscure again and it does indeed work, not sure why I thought it didn’t before, I was probably using the wrong gha