Is SMOTE any good at creating new points? Cross Validated has a pretty thorough debunking of class imbalance being an inherent problem for SMOTE to solve.
However, SMOTE is explicitly a method for synthesizing new points.
Is SMOTE any good at synthesizing new points? If so, is there any way to use SMOTE-style point synthesis to improve model performance, even if we respect the natural class ratio by synthesizing points from all classes, not just the minority class?
(I wrote “SMOTE-style point synthesis” because the “M” means “minority”, so it’s hard to argue that we’re doing SMOTE if we synthesize new points from the majority class, even if we use the same approach.)

No, probably not.
(i) SMOTE can only generate synthetic data points within the convex hull of a subset of points (and therefore will be within the convex hull of the full set of points).  In the true distribution, it is likely that there will be points that fall outside this distribution.  For example, if you split the data to form test and training sets, some of the test points are likely to lie outside the convex hull of the training set (especially in high dimensions).  SMOTE will be fundamentally unable to synthesise points in those positions, and hence cannot be representative of the underlying distribution.
(ii) SMOTE generates points lying on straight lines connecting pairs of existing data points.  It is extremely unlikely that the true distribution is structured in that way - for a start it means that the data points you have been given are "special" in some sense.  SMOTE is adding a spurious linear structure to the data, which I suspect is why they combined it with downsampling the majority class in the original paper (to limit the amount of synthetic points required, and therefore reduce the dominance of this spurious structure).
It is fairly easy to show that SMOTE generated points are not a good representation of the underlying data distribution.  Train and test models with data where SMOTE has been applied (without changing class frequencies) to the training set after splitting into training and test sets, and do the same experiment but apply SMOTE before partitioning.  It will usually give better results if you have split the data before partitioning, as that means the model can learn the spurious structure of the data that is due to SMOTE, and be rewarded for it because it has been added to the test data as well.  If SMOTE accurately represented the data, it wouldn't make any difference.
I suspect that doing something like a Parzen density estimator and sampling from that is likely to be more effective in most problems.
