Do you have examples of what cannot be modified via
alter system set <parm>=<value> scope = spfile;
?
Usually the parameter that I want to change is something that can't be changed via ALTER SYSTEM. Very rarely do I get lucky and edit the spfile such that the checksum is still valid. The only way that I know of to always be able to alter the parameter in spfile is to create a pfile from the spfile, edit the pfile, restart the database from the pfile and create an spfile from the pfile.
HUGE pain. Not a fan of spfile at all. Only use it when management insists.
-- Jared Still Certifiable Oracle DBA and Part Time Perl Evangelist