Not all datasets are linearly separable.
A limitation is a derivative of what you mentioned: how to pick a proper kernel to make the data linearly separable? How do we check we have made our data set linearly separable?
You put in admirable efforts to offer a new angle on data science, each day! Well done