I assume by optimize, you are talking about doing so for reporting. You can't optimize embedded pages because only a scalar can be exposed in the database. I would actually caution against optimizing all your top level properties as well, because there is a performance hit for every property exposed. While that hit is generally marginal, if you have hundreds of exposed properties, those marginal hits can add up and start to have a real impact. Generally, you should only expose a property if you think you will need to review the exposed columns. If you don't have a specific need for a property, you are better off leaving it in the blob.
I've tried to optimize an embedded property using the same activity 'pzOptimizeAProperty' and it worked. There are few parameters which seemed to be necessary to expose an embedded property. Please check the attached screenshot for the params.