If you're going to change the URL while keeping the content, then 301 is the *only* correct way to inform search engines that the URL has changed.
You will indeed take a hit as the search engine spiders get re-oriented on your site. Over time, if your new URLs are better and more structured than your old, then this hit will fade, and you'll likely see an overall improvement over previous rankings.
But the take-home message here goes beyond SEO: Dont' change your URLs ever again. Sit down right now, while both your old and new site structures are fresh in your mind, and design a new URL-structure that you will never have to change again, regardless of technology changes.
Now to be completely forthright, it's true we cannot see into the future and the technology changes it will bring, but do the best you can so that future changes will be minimized. Imagine your site at ten times its current size, at a hundred, or a thousand times bigger; Will your URL structure still be workable, maintainable, archivable? Will you be able to take a part of it and easily move it to a second sever to take a load off the main server when the site is a hundred times larger and more popular, but servers are only ten times faster?
Get rid of anything that ties you to your back-end technology: eliminate filetypes on pages, eliminate query strings, eliminate application-specific cookies or make them extensible to support future needs.
See this rather old, very important, but unfortunately very much ignored article by one of the two co-inventors of the World-Wide Web: [w3.org...]