BaseRegistry has a strange non-symmetric behavior with CRUD operations of stream and on-demand feature views. All 3 types of feature views are applied with a apply_feature_view method that takes BaseFeatureView as an input, but for getting/listing existing feature views, there are 3 separate methods (get_feature_view, get_stream_feature_view, get_stream_feature_view and similar for listing). This is very impractical in practice as normally when a user asks for a FV by name, there's no way of knowing which type of FV the name refers to.
get_feature_view (and probably list_feature_views as well, but that will be hard to do in a backwards-compatible way) should be rewritten to return BaseFeatureView objects.