I believe I have run into this exact problem in SCADAPack workbench function blocks.
You have a function block output variable and you want to use it within the function block as an internal input. SCADAPack Workbench is exactly the same - it will not me use an output variable as an internal input. The solution is to have two variables. One for internal use, and one for the output. You use the one internally for you internal inputs (where required), and the output variable is used once to set the output of the function block.
The way I do it, for example, with an analog input function block - I have a scaling function that outputs my EU (scaled value). I want this EU to be an output variable in the function block, but I also want it to be used internally for alarm determination. So I have two variables:
EUInt---REAL---Internal Variable
EU---REAL---Function Block Output
I set it up so that the scaled value coming out of my scaling function writes to EUInt, then the rung below that I move the value of EUInt into EU. For example:
-[SCL]---EUInt-----
-EUInt=EU------
Sorry, that's a terrible diagram. I hope that helps a bit. Unfortunately I cannot answer the question as to why it doesn't allow it, I know Studio 5000 and RSLogix 5000 allows it. Hoping someone else can answer that question too.