The answer posted by @ndsmyter seems almost correct. The applications under
Application manager -> SD CARD are those applications which can, at least in part, be moved to the SD card (and this happens where the checkbox next to the application's entry is checked). At first sight it may seem like "Application" and "SD card app" are for code on internal storage and on external storage, respectively, whereas "Data" and "SD card data" are for application data generated by the application on internal storage, and external storage, respectively.
However, upon further inspection I realized that on my Samsung Galaxy SIII I don't have an external SD card inserted, and despite this, while none of the applications listed under
Application manager -> SD CARD have the
SD card app field displaying anything but
0.00B, the example below, and many others, shows that
SD card data is nonzero even though I don't have an SD card (click the image to enlarge):
So, the only thing I am able to conclude is that these values are not the number of bytes taken up by the application and its data on internal and external storage, but rather how the data would be distributed among these four locations should the user decide to transfer the application to the external SD card (and some portions would still need to reside on internal storage for technical reasons).
Also note that on my device the field names are different. What on the original poster's post is called USB storage app on my system is called SD card app, very confusing.
And just as confusing is the fact that when I change the UI language to Italian, what in English was called "SD card app" now becomes "SD card applications" (applications: plural), which means not even the people that localized the system could figure out what these fields represented.