Why do I get a "page not found" error?
You don't have a piece of content at that URL mysite/speech/3, only a block. Don't use a block in this situation, just use a regular page. 
Blocks are fine if you can cache them. Does the data change often? If not, set a very long cache and there should very little performance impact.