I do agree that the high-level abstractions of Keras would be meaningless, especially when the high-level API of PyTorch is soo convenient. However, I have experienced a few cases were it would’ve been convenient when dealing with legacy code.
Example. I needed to use open-source code from a few years back which was written in Keras. I needed to extend the code with some linear algebra functionality I’ve written in PyTorch. The backend of the Keras code was TensorFlow. This forced me to rewrite the PyTorch linear algebra code to TensorFlow. If I could’ve changed the backend I would’ve circumvented having to rewrite from PyTorch to TensorFlow.