a) Google can read JS, but they can't necessarily navigate through all the different pages of a single page app. Their recommendation for that is currently to use #! and then when GoogleBot visits a page and sees the #!, GoogleBot will replace that with ?escaped_fragment=... It's then up to you to provide the content of the page to GoogleBot, and that is what this service appears to do.
b)As long as you are serving the same content to Google, it is not considered blackhat seo, and you won't be penalized. Cloaking would be serving different content to Google than you serve to the user in an effort to boost your rankings over what the content the user sees would rank.
b)As long as you are serving the same content to Google, it is not considered blackhat seo, and you won't be penalized. Cloaking would be serving different content to Google than you serve to the user in an effort to boost your rankings over what the content the user sees would rank.