a. Not really. When you save a custom field, we don't know if the elements on which the custom field applies have nothing because it's a new field and the element were there before, or because the user who created these elements decided to enter an empty value (not writing in the text area, or select an option of a dropdown with the value being empty). If we would set the default value at that point, users could loose some of their previous data. You can easily run a MySQL query via phpmyadmin on your end to set the fields automatically:
UPDATE jos_hikashop_product SET custom_field=1;
b. We will add that to next release.