Is there a way to have wordpress 301 versus 302 urls by default?

This is the default because of a number of reasons. The first would be that you could still have a plan for your old URLs, or they are just temporarily not available, so WordPress defaults to this.

If the default would be an 301, it could easily be that your previous URLs are indexed by search engines as “does not exist in this place anymore, I won’t have to look again”, so you lose your pagevalue.

However, if your template has a 404.php, WordPress sends a 404 page as a result.

Please note that WordPress still uses 302 redirects, if your posts and pages get a new URL Structure within WordPress (not switching from a different system).

I hope this helps 🙂