If the 301 is working, the old page is accessible anyway. When someone (or some robot) asks for that page, he/she/it will be served up a 301 header and then the new page (or the old page at the new URL). So from the perspective of visitors and spiders, it's already gone. In fact, that's really what 301 means - permanently moved, never coming back, not here anymore.
By the way, it used to be that Google considered hyphens to be word separators, but not underscores. So if you had a url like
Google saw "blue" and "widget". But if you had a URL like
Google saw the single words "blue_widget" and "bluewidget" which nobody searches on. So the common advice was to use hyphens.
Google has gotten a lot more sophisticated in how it parses words and in all of the above cases it would probably see "blue" and "widgets"
The other problem with underscores is that they don't show up when text is underlined. So if someone puts your URL in a standard blue, underlined link, someone reading it out can't tell if it's a space or an underline. So that's another strike against underlines.