The deep learning module was introduced to OpenCV in version 3.1 as a contribute module. This was moved to part of OpenCV in 3.3, but it was not widely adopted by developers until versions 3.4.3 and 4.
OpenCV implements deep learning only for inference, which means that you cannot create your own deep learning architecture and train in OpenCV; you can only import a pre-trained model, execute it under OpenCV library, and use it as feedforward (inference) to obtain the results.
The most important reason to implement the feedforward method is to optimize OpenCV to speed up computing time and performance in inference. Another reason to not implement backward methods is to avoid wasting time developing something that other libraries, such as TensorFlow or Caffe, are specialized in. OpenCV then created importers for the most important deep learning libraries...