Let me give my insight of PSoC as I have been trying it out for both professional and hobby stuff. I haven't touched PSoCs for a couple of years now, so if things have changed then correct me.
In my opinion the real strength is the UDB, otherwise it is just a microcontroller as any other. If i'd like to get full gpio multiplexing, there are cheaper microcontrollers with that (LPC15?). For the most of the designs, the modern mcu-s have plenty of peripherals and having a spare uart makes pin muxing much more simple, there is no need to go full matrix. The peripherals are just cheap and plentyful. The partially universal serial peripherals (ie UART capable doing SPI etc) or even the even more universal SAMD sercom make more sense than making serial ports in UDB. Gaining the universalness of trading uarts for timers is not worth it for me. It's 2021 and the price of a transistor on silicon die is not that expensive anymore to worry about the cost of unused peripherals. Perhaps if there would easy ways to work with the existing UDB designs, it would be more useful to hack a feature in here and there, in case I'd need some quirk for an existing peripheral. But for this to work out, the stuff should be oriented to hard-core low-level developers, unlike it now is.
The PSoC creator software has had a lot of work put into it and is probably one of the most polished vendor ide-s out there. But it does not fit me. First, none of my machines run windows, except a virtual machine used for things like that. Also, it contains too much point-and-click for my liking. Give me good documentation of register level peripherals and I can handle the rest, like with all the other Cortex-M microcontrollers. It is not special, it is just another Cortex-M. In the Cypress case, I need to know another framework pushed on me. What all the APIs look like, what they do in hardware etc. This stuff may suit for Arduino-like users and it is a very important step of getting more professional at it, but that is already behind me. There have been some hacks that revealed the built-in ROM stuff in the PSoCs, which show what Cypress has been hiding from the user with unusually high efforts and all of this makes me feel that they don't like the users to step outside of their comfy gui wizard thingy and that is just too much limitations for me.
Why not just provide a simple Makefile project to compile with gcc? The designs to put into UDBs as simple C source, that just write the config registers in uart_init() to configure the UDBs and have a very thing example on top of it? Flash and debug it via OpenOCD using whatever tools I already have?
Where the UDB really shines is making custom peripherals for obscure interfaces. For example if you need a 1-wire slave port. Or driving a lot of WS2812 led chains in parallel. As usual, those use cases can either be handled by throwing more cpu power on it and just bitbanging the whole thing in software (ie via timer IRQs etc). Going the route of custom peripherals needs a lot of specialized know-how. It is fun in the sense of solving a challenging technical puzzle, but usually not worth financially. When going that deep into the PSoC, you're out of the shiny gui wizard territory. The UDB is not an fpga, it is just too small to write HDL and let the tools synthesize it. It works only when using both parts of it (PLD, datapath) and this means manually designing your controller for that exact system. It is a fine puzzle - the documentation is difficult and the needed know-how is quite deep to be good at it. You really need to visualize the datapath internals at the lowest level and map your function to it. At some point, the tools start getting in the way and not letting some configurations be entered that were possible via documentation (it was some years ago, perhaps things have improved). In any case, the GUI does not seem to help much, i'd rather write some files and let a tool to compile them. Finally, I'll need to figure out the software interfacing for that component, that is another puzzle through all those APIs and miles of not-so-well documented auto-generated stuff. I did get my stuff working, but I do not feel that I'd do this for any commercial work.
I cannot figure out the usefulness of the PSoC:
* Strength: Cool hardware, that could be hacked at very low level - but the software on top of it is dumbed down
* Strength: Making custom hardware interfaces - but it is so damn hard, that bitbanging in software on much more capable mcu makes more sense
* Strength: Standard Cortex-M microcontroller - but is hard to use the same stuff that works on the rest of them
...