I'm not sure if it still holds up in this day and age, but on the database side memory usage is one reason. For example, if all the values in a field represent dollars, there is no reason to have the $ sign stored with the data, as all those dollar signs take up space. There is just lots of redundancy there that one could normalize down to a field without them and save space/make the database work more effectively.
Depending upon your data, a similar argument can be made for the hastag or other symbols; if all the data for a field would have that character anyways, drop that character. Of course, one would have to have a process to add that character back in if the data needed to be exported to someone and they are expecting the character to included with each value.
The GIS reasoning for not using special characters is that they can cause issues with many GIS processes. Some processes crash if special characters are included. Part of this due to the way operating systems work in that they often reserve those characters for operating system commands, so the operating system gets confused when it sees those characters in data.
Chris Donohue, GISP