Why is cache_discovery not rebuilt on cache-rebuild?
If you truncate the table cache_discovery and then do a cache-rebuild the table is filled again with data, what would not be, if this was still a cache-clear. In D8 clearing the cache is more like rebuilding the cache, hence the new name. Some tables are still cleared, like the render cache or the twig cache, because these are filled with new data from the result of each request. But the structural data like discovery, router, config and some more are rebuilt, so that the first request after clearing the cache doesn't take too long.

If you set $settings['cache']['bins']['discovery'] = 'cache.backend.null';, then you freeze the table content. It is not touched, even not by a cache rebuild, until you remove this setting.