Pretty much all of CBs features and plugin features can be controlled entirely with ACL so that's certainly doable to add all kinds of content limits based off membership. As for memberships it self you'd use CB Paid Subscriptions. For a dating site I'm guessing you'd need the following at the very least.
CB Gallery
CB Privacy
CB Conditional
CB Paid Subscriptions
If you wanted an activity stream for your users you'd also want the following.
CB Activity
CB Auto Actions (this will bridge CB Gallery to CB Auto Actions for generating activity)
The main feature missing would be the ability to block users. That's not currently available and is planned in a later release of CB Privacy as per the below feature ticket.
forge.joomlapolis.com/issues/4969
However you could use UddeIM for private messaging instead of using emails, which does have blocking functionality to help block communications.
The directory functionality I assume would just be a standard userlist, which you can configure however you like in CB > List Management.