To begin, while Google does not take into account special characters in domain names, that is only limited to term weight within the domain name. Having said that, special characters are used to establish word (term) boundaries. This is a programming construct. This means that ab-cd.com would be split into two terms, ab and cd. There is no confusion between abcd.com and ab-cd.com. Where you might get into trouble in weight within the SERPs, is where a common term is separated such as tele-phone. In this case, you are competing with tele, phone, and telephone.
Home pages are often hard to rank since they often do not contain much content or rotating content and may not always appear first for the domain name. This is not a problem. However, if you want your home page to perform for your domain name, the proper signals must be in place. For example, you must use the domain name as a company name within key elements of the page including the title tag, description meta-tag, h1 tag, content, etc. This does not always work if your domain name and company name are not the same. As well, you must also brand your domain name. This is not always easy to do and requires a reasonable portion of the 46 branding signals (my count) which is too long to list here. This includes contact information including address, phone, and e-mail easily found in traditional places such as the About, Company (Info), and/or Contact pages or possibly within the sites header or footer.
It is not uncommon that a home page does not appear first when searching the domain as a keyword especially when there is competition for the term. Just because a term is used as a domain name does not mean you automatically rank for that term. Most keyword matches against the domain name happen after all other ranking factors return little results. This means that exact term matches against the domain name happens last with the exception of where the sites home page or other pages rank well for that term otherwise. Performing a site: search may not always return the home page first though it generally does. Again, this is not a problem. Using a site: search, Google will return pages in the order of importance as Google sees it. If your home page does not appear first in this case, then you can determine that your home page is not seen as important. This is okay, however, you may want to increase the importance of your home page by adding value to it. This has nothing to do with any term used in the domain name since you are not doing a term search unless you do a site: search with search terms. Then, it is far more likely that the home page will not be returned first. This is completely normal and is not a cause for concern.