You can actually call up the developer relations people and find out if anything is particularly troubling they can think of before you go through an expensive dev phase.

Their comments aren’t binding (or even something I’d reference), and the approval criteria is constantly evolving, but they’re pretty good at pointing out concerns from a 30 second description of the app.

This is good to do if you’re doing something you think may get you in trouble, but think it won’t necessarily do so. They’ve been very helpful in the past about their criteria for the different GPS APIs etc.