My question was answered on Wrong order of fields in DMatch. · Issue #27336 · opencv/opencv · GitHub.
The issue was caused by too “shallow” input arrays, they have to be 3D as shown below:
bf.add(np.array([[[0], [1], [2]]], dtype='f4')) # train image 0
bf.add(np.array([[[0.1], [1.1], [2.1]]], dtype='f4')) # train image 1
Forcing matches to use variable length descriptor arrays from individual images is not possible in this example.