When you save a function file, MATLAB knows the main function in that file by the name of the file, not the name in the function declaration line, as stated on this documentation page.
In your example, the main function in your SpectRefl.m file is called using:
someOutputs = SpectRefl(someInputs)
despite the function declaration line reading
function varargout = SpectReflect(varargin )
You can confirm this by putting a disp statement inside the main function in the SpectRefl.m file (and commenting out the SpectRefl function defined after the main function) and calling it using the name SpectRefl. If you also try to define a function SpectRefl inside that file, you have two functions with the same name in the same file. That's not allowed.
To address your other question, it is possible to generate just a .fig file. Go to the Tools menu and select GUI Options. Change the option to generate just the .fig file. However, it's probably going to be more difficult to connect the callbacks for the components in your GUI to the function file you've generated. It's less likely to have the structure the GUI's callbacks expects as the function file generated by GUIDE. Instead, you might want to generate both the function file and the figure file and call your other functions inside the callbacks in the function file.