You said: "I've seen some people add restrictions, such as not allowing file, network, or database access in the interest of speedy runs and minimalistic dependencies."
The three restrictions you cited are listed in Michael Feathers' blog post: A Set of Unit Testing Rules http://www.artima.com/weblo...
You also said: "A unit test is just a convenience that allows you to track down bugs faster"
Here are some excerpts I selected from another blog post by Michael Feathers, 'The Flawed Theory Behind Unit Testing' http://michaelfeathers.type... :
"One very common theory about unit testing is that quality comes from removing the errors that your tests catch....It’s a nice theory, but it’s wrong."
"Unit testing does not improve quality just by catching errors at the unit level...The truth is more subtle than that."
"Quality is a function of thought and reflection - precise thought and reflection."
"When you write unit tests, TDD-style or after your development, you scrutinize, you think, and often you prevent problems without even encountering a test failure. "
Philip