Passing arguments to a block
It's not uncommon to customize block contents based on URL arguments. I don't see any reason to not do that. 

However, since your block contents can change based on the URL, you need to use either no cache at all or DRUPAL_CACHE_PER_PAGE. 

If your block contains any Ajax elements, note that arg() will return the ajax path.