Add tests that check that the `do` optimization maintains the correct behavior.
Add comment explaining that compile_do exists to allow TCO when `do` is involved.