Thank you for your suggestion of using a more restricted command.  Shown below is what I get from my Version 10.4 , which indicates that there is some improvement in later versions.  Even in Version I2 I feel that it would make more sense for all the heads revealed by Tally to be Symbol, and for no symbol (or at least an absolute minimum of symbols) to be activated without at least the presence of square brackets..
In[1]:= Tally[Head /@ ToExpression /@ Names["System`"]]
During evaluation of In[1]:= $IterationLimit::itlim: Iteration limit of 4096 exceeded. >>
During evaluation of In[1]:= CloudAccountData::notauth: Unable to authenticate with Wolfram Cloud server. Please try authenticating again. >>
During evaluation of In[1]:= CloudObjectNameFormat::una: Unable to apply the specified name format UserURLBase.
During evaluation of In[1]:= CloudObject::unauth: URI /CloudExpression only valid when authenticated. >>
During evaluation of In[1]:= CloudObjectNameFormat::una: Unable to apply the specified name format UserURLBase.
During evaluation of In[1]:= CloudObject::unauth: URI /CloudSymbol only valid when authenticated. >>
During evaluation of In[1]:= CloudObjectNameFormat::una: Unable to apply the specified name format UserURLBase.
During evaluation of In[1]:= General::stop: Further output of CloudObjectNameFormat::una will be suppressed during this calculation. >>
During evaluation of In[1]:= CloudObject::unauth: URI /PermissionsGroup only valid when authenticated. >>
During evaluation of In[1]:= General::stop: Further output of CloudObject::unauth will be suppressed during this calculation. >>
Out[1]= {{Symbol, 5547}, {Hold, 1}, {GrayLevel, 5}, {RGBColor,
  20}, {DirectedInfinity, 4}, {Dashing, 3}, {GeoPosition,
  2}, {Complex, 1}, {DateObject, 5}, {String, 61}, {Thickness,
  2}, {List, 45}, {Integer, 24}, {FrontEndObject, 1}, {Entity,
  3}, {Association, 1}, {Function, 1}, {Real, 10}, {LinkObject,
  1}, {Rational, 1}}*