You would have to first create a custom Composer Template (can be done from the CP or using the {exp:freeform:composer}
tag as a tag pair with Composer Template code inside), and manually create/hand-code your field output when your custom field is called. For example, based on the default Composer Template code, there is this conditional:
...
{if:else}
<p>{composer:field_output}</p>
{/if}
Which you could change to
...
{if:else}
{if composer:field_name == "my_email_field"}
<input type="email" name="my_email_field" placeholder="Enter email" />
{if:else}
<p>{composer:field_output}</p>
{/if}
{/if}
The other alternative is to use javascript to change the type=""
when the form is loaded from your template. Again, you would need to target the fields that you want to change.
Finally, you could file a Feature Request, for some setting in the CP for example, under the specific add-on category here: http://support.solspace.com/support/discussions. It'll also give other users the option to vote up the feature request, and help us prioritize features to add in upcoming versions of this add-on.
As for your sub-question, there's not much that can be done with required="required"
, short of using javascript to format it the way you want. The other option could be to file a Feature Request for this as well.