That's interesting, though the type inference seems like spooky action at a distance there: removing an assertion can break code.
I suppose it gives you a way to specify the length in the examples (below), but it seems more ergonomic to take it from the original array.
let bool_arr = core::array::from_fn::<_, 5, _>(|i| i % 2 == 0);