3d printing can do it, however, not home 3d printers.
Realistically, you need industrial types to do it.
Yes, you can smooth 3d prints, however ABS printed on any 3d printer is not nearly as strong as ABS that has been injection molded, and those who have made keycaps have had them break. There is also the matter of colors, most home 3d printers are single color only, so forget legends unless you spring for a deluxe model or make your own. Costs for other materials and printers goes up VERY fast.