In the following code:
async fn rec_1() {
    rec_2().await;
}
async fn rec_2() {
    rec_1().await;
}This gives an error when it is a part of a lib crate.  However, as a part of a bin crate, it compiles.
Here's an erroneously compiling playground link and a correctly erroring playground link