I don't think this is a necessary restriction. We can't have special evaluation behavior with a splat, but we don't have to bail on it.

The easiest way to implement this would probably be to keep the old if function, mark it `@private`, and use that if a splat exists.