Q[Role=...] and performance: In our scripts we use the if Q[Role=...] option. Will this deteriorate our performance?

No, you don't need to worry about performance when using this feature. The user roles are read via the BAPI call
BAPI_USER_GET_DETAIL
and then stored in GuiXT cache. This call takes around 0.2 seconds if the RFC connection has to be established, but thanks to the caching the call is necessary only once.