Before feature levels, developers had to write separate code paths for different hardware generations (e.g., DX9 vs. DX10). D3D_FEATURE_LEVEL provides a cleaner approach:
*Note: While Direct3D 12 generally requires Feature Level 11_0 or higher, development modes and specific adapters can allow lower feature levels. d3d_feature_level