Yes, people just need to understand that "stm32" on ebay/aliexpress doesn't mean "stmicroelectronics stm32", it means "stm32 compatible" which generally adheres to the datasheet and reference manual. Code that depend on undocumented behavior may not work across all manufacturers, but in all my tests of the peripherals including ADC, DMA, timers, USB, SPI, and flash writing I've not found anything that deviates from the spec sheet. Maybe if you use a broken USB library (the one supplied by ST is broken!) it won't work on a CKS32, but so far with libopencm3 all peripherals including USB worked perfectly on all compatibles I've tried.
For someone new to STM32, I don't think the compatibles are a bad choice, and I'd even recommend testing your code on all compatibles including a genuine ST STM32 from mouser so that you can be sure your code is portable and doesn't depend on unspecified behavior. Just like you should test your web app on several browsers, and not just a Genuine Microsoft (R) internet explorer (TM).
" I'd even recommend testing your code on all compatibles including a genuine ST STM32"
I think your advice is for Chinese users of the home grown 'compatibles' but I wouldn't do that because I'm only using genuine ST STM32 chips, and their documents tell me exactly what to expect, there is no ambiguity here for me.
My situation here in the West is the reverse of yours, I can buy the genuine STM32 chips at a good price, there is no need to try and buy them from China which is now far too risky given that I may receive up to 3 different 'compatible' non genuine chips, marked as STM32F103x instead. My motivation to buy 'compatibles' is exactly zero.
" but in all my tests of the peripherals ... I've not found anything that deviates from the spec sheet "
There is no single "spec sheet", there are many STM32F1x documents, including ones from ARM. It takes months just to read them all.
Furthermore the STM32F1xx has 37 peripherals, 413 registers and 3044 bitfields, so I don't believe you could have tried more than a few combinations.
We have a old saying here in the West, "lack of proof is not the same as proof of lack".
I don't want to give the impression I'm anti Chinese, because I'm not. I'm only anti counterfeit and fakes, which are illegal in the West.
I think the Chinese people have made a terrible mistake with the STM32F103 counterfeit chips, at least from a perspective of selling them here in the West. I believe those chips will mainly be sold in China now as no one wants them here.
Contrast the 'compatibles' to the GD32VF103, it has the open source RISC-V core which anyone is free to use, and a lot of the STM32F103 peripherals which have their own GD32VF103 names now. It's not a 'compatible' of anything, it's a new chip, all Chinese. There is a GD datasheet that's ok, but has some terrible errors.
I have no complaints about the chip, I received a couple of GD32VF103's in different boards and they seem to work ok, tho it's early days yet. GD may possibly sell a *lot* of the GD32VF103 here when they are available as chips only, and if the price is good.
Look at the excitement the Padauk PMS150C "3 cent micro controller" has caused since it came out, it's not a copy of anything, the documentation is great, the IDE and programmer software (windows only) is free to download and they have hardware simulators to develop applications so buckets of OTP PMS150C's aren't required for development. I think it's a excellent, honest product with first class documentation and support.
I believe that honest, reliable, innovative and low priced Chinese MCU's may sell well in the West, but we have long memories and don't like being ripped off with counterfeits and fakes.
I believe you may see the impact of this in lower chip sales to the West eventually because the buyers here know they can't trust they will get what they paid for when buying electronics from China.
Earning back buyer trust may take China decades.