Permission required when using Intent to call phone?

Actually, if you wish to just open the dialer with a specific phone number, without direct calling (needs user confirmation), you can do it without any permission:

Uri uri = Uri.parse("tel:" + PHONE_NUMBER);
Intent callIntent = new Intent(Intent.ACTION_DIAL, uri);
try {
    context.startActivity(callIntent);
} catch (ActivityNotFoundException activityNotFoundException) {
    // TODO: place code to handle users that have no call application installed, otherwise the app crashes
}

Is this really required?

Yes.

I do not understand the difference between a phone and a camera feature.

Phone calls can cost people money. Hence, if you directly place a phone call (vs. ACTION_DIAL to just put the number in the dialer), Android wants the user to agree ahead of time to allow this.

Taking pictures with the camera does not usually directly cost users any money.

Is there a list on hardware features that need a permission if fired with the help of an intent and those that don't?

Not really.