The when and unless forms are syntactic sugar for one-armed if expressions. Because each incorporates an implicit begin, they are sometimes more convenient than one-armed if. Some programmers always use when and unless in lieu of one-armed if to make clear when a one-armed conditional is being used.
The case-lambda form allows constructing procedures that distinguish different numbers of arguments. Using case-lambda makes this considerably easier than deconstructing a list containing optional arguments explicitly. Moreover, Scheme implementations might optimize dispatch on the number of arguments when expressed as case-lambda, which is considerably harder for code that explicitly deconstructs argument lists.