In terms of registrations, you can either enable or disable this option. If you disable registrations then this would mean you could manually create user accounts and therefore determine who can post on the site. If you enable it then anyone can register.
There is no built in function which would enable you to provide recommendations as you describe, so yes this would require modification of the default theme on your part.
You can create whatever categories you wish for the listings, with relevant ad forms for each category if you need it. Having pricing packages allows you to charge different rates depending on the type of listing.
With the help of a developer anything is potentially possible, our themes are not encrypted so you are free to make changes if you wish. Out of what you have listed, possibly only the recommendations functionality would require actual customization of the theme (unless you wanted something further from your categories). AppThemes does not offer customization services, however we do have a
certified partners page where you can find developers for hire. If you contact them directly with an outline of your requirements, they can provide a quote for changes you wish to make. Thanks.