Based on the Wikipedia concept
Infrastructure as code (IaC) is the process of managing and provisioning computer data centers through machine-readable definition files, rather than physical hardware configuration or interactive configuration tools
It works well for provisioning tools like Ansible, Chef, Puppet and PowerShell DSC, which are well known automation tools, very useful during the continous development process. During a long time this was the closest way we could create the whole infrastructure our application needed using code. Nonetheless, with the aparition of Infrastructure as a Service we became capable of truly managing networking, computing and storage infrastructure.
If we have in count another point of view of IT Infrastructure that defines it as
the composition of physical and virtual resources that support the flow, storage, processing and analysis of data.
then it looks clearer to me that infrastructure might refers more to the networking/computing/storage resources, namely IaaS resources. Tools that come to my mind are Azure Resource Manager Templates and AWS CloudFormation; which create infrastructure from the ground, having in count of course that provisioning tools works as a nice complement to automate the configuration of the system.
Should Infrastructure as Code be used to refer provisioning/automation/deployment tools or it should just highlight those which through code allows the automation and management of virtual resources?
Let's talk about the Azure Resource Manager Template, it allows people to create or recreate the resources conveniently through the code, just like a template. And as you say,
So, in my own opinion, Infrastructure as Code should just highlight those which through code allows the automation and management of virtual resources. It's more appropriate for IaC. Let's assume that if the Infrastructure cannot be managed by code, we must not think it's Infrastructure as Code.