O Windows faz isso por motivos de segurança. Se um programa antivírus de alguma forma conseguir se copiar na pasta de inicialização e definir sua propriedade como arquivo de sistema e arquivo oculto. Seria muito difícil detectar.
Não apenas os arquivos ocultos, se você colocar um programa na pasta de inicialização, que requer privilégios de administrador para execução, também não serão executados.
Veja o que você pode fazer nos dois casos.
- Coloque seu arquivo em outro lugar (ou na pasta de inicialização, não importa).
- Crie um arquivo em lote (.bat) que execute seu arquivo principal.
- coloque o arquivo bat na pasta de inicialização.
Nota: Você receberá uma janela de prompt de comando durante a inicialização, mas existem maneiras de corrigir isso. O que você pode fazer é: gerar um exe daquele arquivo bat (existem programas disponíveis para isso, apenas google) com janela oculta.