You can reuse URLs that were previously 301 redirected, but only if the 301 was configured with directives to limit caching.
As others have noted, some browsers will cache the 301 response without an expiration date, and without revalidating to check if it has changed, but only in the absence of explicit cache directives.
For this reason, the best practice is to always set cache directive headers for every 301. These headers are often used to forbid caching entirely:
Cache-Control: no-store, no-cache, must-revalidate
Expires: Thu, 01 Jan 1970 00:00:01 GMT
Assuming only HTTP/1.1 and modern browsers, I believe this minimal header achieves the same thing:
Cache-Control: no-store
It may be safe to use a more permissive Cache-Control
header in order to allow reasonable temporary caching.
https://developer.mozilla.org/en-US/docs/Web/HTTP/Caching
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cache-Control