The law is not creating any codes. ICD-10 codes were created back in the early 90s and have been in use by countries other than the USA since the late 90s. But Medicare hasn't been eager to adopt anything that would require they change their software, so the USA sat on it's butt with the ICD-9 codes for the duration.
ICD-10 does indeed give lots more detail. And while some of it is ridiculous sounding, the vast majority provides levels of detail that the insurers have been wanting, but the health care providers have had no mechanism to send. (bear in mind that the HIPAA law requires almost all providers use EDI electronic commerce for sending health care claims, so they've been on a standardized format for years)
ICD-9 isn't up to the task. ICD-10 goes above and beyond. There will definitely be some issues (I'm seeing them already on some of my projects at an insurance company) as we figure out how to process claims when we receive a lamp-post-injury code etc. But we'll get there.
As for costs. Will it increase costs? Yeah, in the short term. But it's got to happen. We're paying more now for not having it, we'll have to pay a bit more to adopt it, and then it is to be hoped that having it (ICD-10, that is) will eventually reduce some costs. How? Because the claims that get denied because the person shouldn't have been covered that is successfully communicated by the ICD-10 codes means that everyone else doesn't have to pick up the tab for that person who is setting his skiis on fire while being attacked by a bird with a lamp post. Trust me, you want payments to be as accurate as possible.