After a lengthy discussion with MathWorks Customer Support, I've found out that this isn't possible. The Fuzzy Logic Controller block rebuilds the logic when it reads the fis parameter, and so if the contents of the parameter are changed, it forces a rebuild of the simulink logic.
I haven't got a working solution yet, but from our discussions it seems like there are a number of solutions:
1) Compartmentalise the simulations, i.e. use two simulation files. This solves the issue partially in that it allows the simulation file with all the static logic to be built only once, whilst the simulation file with the FLC block still gets rebuilt everytime the fis parameter is changed. Reasonable solution in that it's easy to implement and saves a lot of time rebuilding the code.
2) Use a MATLAB Function to call a C/C++ function which handles the logic of the fuzzy logic controller. This is a bit more effort because it involves writing the functionality myself, but this shouldn't trigger a rebuild.
3) Use of an S-Function. Still exploring this but it seems like it would have similar functionality to above.