I use and know Core Data pretty extensively and have deployed it in several apps, so my take is that it today's Core Data is pretty good.
It has an great concept for managing entities, some nice magic with the runtime to make things easier, and is pretty straight forward. It can be verbose, but this generally allows for the ability to break components apart and overall I've found that leads me to be better organized with my model structure and setup. Besides that, you can easily find or make your own wrappers to reduce code redundancy if that's a problem. It's core (ha) focus is tracking objects and imo it does that well.
It handles relational data just fine... and is a relational database (not just an ORM or graph database) so I'm not really sure why that was mentioned as a negative - I think that's worth expanding on if you can because I'm curious. The example you noted can be easily achieved in CD and I've modeled some pretty intense graphs before.
The single biggest drawback and one that is a deal breaker for most is going to be data portability. There is no Core Data iCloud API anymore, so it is up to the developer to manage iCloud, CloudKit, or other service storage and synchronization (it can be done and there are some
3rd party frameworks out there for this). The default format Core Data stores in is not very portable, even though it's a SQLite file, so translating even just the database to something standardized is going to be some effort unless you want XML or to write your own adaptor.