Variable Icons are different.
The lower one is widget. lower one has has default object icon but it can be any class.
Color is most impotent as it defines variable type, but object related types like object reference and class reference as well as soft reference version of them may also different icon shape depending on class of object you pick as you can assign one to the class in C++. You can see those shapes when you pick variable type as well as in class viewer (Window->Development Tools->Class Viewer) and blueprint icon itself depending what base class you picked(but it may have different icon). It simply there to help you identify what object reference type you dealing with.
You can also have different shape on array variables, array, set and map. map even have dual color icon indicating type of key and value types of the map.
Follow this question
Once you sign in you will be able to subscribe for any updates here