Actually I test it and, yes, it save the sln file with the change but it does not fire any event :(
If I add the ProjectService.SaveSolution instead of just solution.Save() it will fire the event but it also will save all the projects.
That is not that bad, but the best will be to only save the sln file and fire an event, but that event does not exist.
The ProjectService should have a method to remove an item from the solution that fire the event.
regards,
sean