My road bike was bought in 2015 with a mix-match drive train: my derailleurs and shifters are Tiagra 4600 but the crankset is a Sora 9 speed (50-34). The large plate teeth are now quite worn out and I am foreseeing a replacement in short term. Tiagra 4600 is now discontinued, as it has been many years since the release of 4700. I do want to buy a new crankset, in that price range, going second hand is not cost efficient (my personal take). Can I just buy a 4700 crankset? The botton bracket is a hollowtech 2. I know that shifters and derailleurs are not compatible between 4600 and 4700 because of a different pulling mechanism, but the crankset should be compatible as both are 10 speeds. No?
Yes, you can slam the new 4700 chainset straight in there. It should be as simple as that if the ring sizes are the same, though you may need to subtly adjust the front derailleur.
Your other option is to buy a pair of 110bcd 5-arm chainrings from TA, Middleburn, Shimano, etc etc, which is usually nearly as expensive.
"The definition of insanity is doing (nearly) the same thing over and over and expecting different results."
You have observed cheap Shimano Sora chainrings to wear away rapidly.
The solution is to not replace the crank assembly with Tiagra with Tiagra chainrings, because Tiagra chainrings have the same flaw: they're not made of 7075T6 aluminum.
So you'll note the Tiagra chainrings wear away quite rapidly too. In fact, the next time you probably switch upwards to 105 chainrings, but they wear away very rapidly too. Then you switch upwards to Ultegra chainrings, noticing they have a tendency to wear as well. In fact, it probably takes upgrading all the way to Dura-Ace until you notice chainrings don't wear rapidly anymore.
There are component manufacturers such as Specialites TA that make reasonably priced 7075T6 aluminum chainrings. If you have noticed your chainrings have worn away, you can buy replacement rings from these companies. Two quality 7075T6 chainrings from manufacturers selling reasonably priced 7075T6 rings probably cost as much as a low-end crankset, but the low-end crankset has rings that wear very rapidly, meaning you'll encounter the same problem very rapidly again.
Don't buy chainrings unless the manufacturer specifically has stated that the very rings you're buying are 7075T6 (or 7075T651).
Buying a cheap crankset having non-7075T6 rings might be a good idea to get the cranks, but then you'll have to budget some amount of money for eventually replacing the rings with quality 7075T6 components.