Finished it the other day, it's an incredible game. I was honestly taken aback at just how much thought was put into the bosses; I had my doubts whether Cuphead would've been the kind of game that revolved largely around its style, but it quickly became clear that the developers really know what makes for an engaging and high-quality boss fight. Consistently, at that! The patterns are 99% of the time very reasonable due to careful timing and clear audiovisual telegraphing, but most importantly is the amount of sheer creativity crammed into these fights. Not only aesthetically, but also how the team ran with an underlying theme and made a given boss' attacks (or the way the fight unfolds) feel cohesive throughout. Never mind still finding the time to cram in all kinds of gags or referential nods throughout the whole shebang without it interrupting the flow of the fight or without relying on the same gimmicks, making said fights feel fresh from beginning to end. Cuphead is legitimately impressive on that front and that's without even discussing the impeccable soundtrack.
There are two so-called shortcomings that stuck out to me the most however, starting with the run & gun stages. Due to the inconsistent timing of certain enemy spawns or certain attacks, at the drop of a hat they can become increasingly more chaotic in a manner that comparatively speaking doesn't quite feel as natural or as predictable as the boss fights and some of the randomness involved here leads to obnoxious circumstances, even if said components are balanced when looked at in isolation. There (barely!) isn't enough consideration during numerous intervals for reliable timing windows, which really sticks out when trying to speedrun. One attempt you'd easily waltz through a particular stretch with little opposition, the next attempt could throw multiple overlapping enemies / projectiles at the player with relatively little to no legroom to either zip through a previously occurred opening or to manipulate the circumstances in your favour without slowing down much. It's more or less a non-issue if you play the game without the intent of rushing it, since again they're surmountable obstacles when playing normally, but a prominent element of behind-the-scenes luck rears its head as soon as you want to play efficiently for reaching speed-related meta objectives. It's... a delicate matter.
My second qualm lies within Expert Mode: first off, I appreciate how it increases Cuphead's difficulty with nuanced finesse! Bosses are rebalanced on a case-to-case basis, which translates into them (for example) acting faster or having their existing attacks behave in a new fashion rather than just arbitrarily cranking up universal damage numbers like so many other games do. However... because of this, specific ones simultaneously suffer from a heavy dose of luck that's directly proportionate to how effective one would want to play, similar to what transpires in the run & gun stages. Beating a boss on Expert Mode is entirely doable without a shadow of doubt, but on the other hand the aforementioned overlapping issue re-emerges in full force if you're looking to attain S-ranks. There are moments (ones out of your control) where you could be stalled for an undetermined, variable amount of time, just because another attack happened to transpire the one time an parry object did spawn or due to it being on top of a platform when you're practically forced to jump. Sometimes even consecutively! The dragon boss is a prime example of this even on Normal, since you have only have one phase to meet the respective S-rank criteria and if you patiently bide your time to bait it out without a cloud and its tail conveniently getting in the way, you might fall short for the time criteria instead. The lack of invincibility frames after a successful parry - mind you I'm not saying these should be incorporated! - also regularly put you in between a rock and a hard place in these kind of scenarios, due to the fact that being hit even a single time also denies you of said rank. It's yet again another delicate matter dictated by subtleties that don't affect so-called 'casual' playthroughs.
I'm admittedly nitpicking here, because ultimately all of the above is hardly detrimental to the otherwise extremely polished gameplay.