The nice thing about VNAV is that it complies with altitude constraints down to the one set in the MCP (provided descent winds are as advertised), whereas FLCH just looks at the MCP.
When there is speed control however, VNAV with speed intervention complies better, managing the profile with thrust or speed brakes.
Personally for complicated STARs I stay on VNAV. If going off the planned track I.e. Hdg Sel iso LNAV, then I'd use FLCH.