Operations on exact numbers try to preserve exactness, while inexactness is contagious. Lists, vectors, and strings are separate types, not subtypes of a more general sequence type. There is no standard SETF equivalent. In place of CDR in this example, we could have any expression that evaluates to a function taking one argument. Multiple Arguments and Multiple Values Scheme procedures can take a variable number of arguments, using an improper lambda-list.
Procedures can also return a variable number of values.
Then a subsequent MY-OR expression gets replaced with the template for the first pattern that matches, with pattern variables instantiated from the original expression. The R5RS report goes into more detail. There are lower-level macro systems that allow arbitrary computation and selective violation of hygiene, but none is standard. It's possible to build them all on top of the base language with little extra support from the implementation, but there's no consensus on what the resulting system should look like. Abelson and Sussman, Structure and Interpretation of Computer Programs , 2nd ed.