The fact that your EL expression gets evaluated many times is ultimately not Seam's fault. The fault/reason lies in the JSF framework. The EL expression may be evaluated in each of the JSF phases and can even be evaluated more then once in an individual phase depending on the component.
I would really recommend you read this article and it's follow up which should be linked from it. This will give you some of the reasons why you experience this problem and some of the ways to avoid it.
It does not go through every possible solution to your problem. But, once you understand what is going on and see some alternatives maybe you'll find one that suits or can work out your own solution.
It's very interesting article that clarify many problems of performances in jsf/seam framework.
Concerning my problem, i resolved it using the jstl
that call a custom method (haspermission) on the loading of the page and then set the value returned on the rendered component.
Thanks a lot.