This is all intended. Of course a new file can contain malicious parts, and therefore must be analyzed before running, and of course new files might be sent over to us for even further analysis (this is called CyberCapture: https://blog.avast.com/cybercapture-protection-against-zero-second-attacks)
As we pointed out numerous times, you have two options:

  1. Either you send us the new file every time you create it, so we can manually “set the reputation” of the file before the first user tries to run it (and a “this file is new” dialog appears);
  2. Or you let others know in advance that this file is to be trusted. This can be done (you guessed it) by attaching a digital signature.

There is literally no other possibility. If the file is new, we will ALWAYS tell the user the file is new (obviously), with the sole exception that we recognize the digital signature (then Avast thinks something along the way of “I do not know this file, so it is suspicious, but according to the signature, it comes from this dev, and this dev has never signed a malicious file, so I do not need to perform additional scanning and I need not alert the user”).