What is the difference between WGS 84 and EPSG 4326? It seems like for a given dataset it might be both WGS 84 and EPSG 4326.
4326 is just the EPSG identifier of WGS84.
WGS84 comprises a standard coordinate frame for the Earth, a datum/reference ellipsoid for raw altitude data, and a gravitational equipotential surface (the geoid) that defines the nominal sea level. [WP]
If you're really going to pick a nit: EPSG 4326 defines a full coordinate reference system, providing spatial meaning to otherwise meaningless pairs of numbers. It means "latitude and longitude coordinates on the WGS84 reference ellipsoid."
The term WGS84 is sometimes used the same way, but also it can refer to the ellipsoid only. For example, you can have "meters northing and easting as measured upon the cylinder formed by projecting the WGS84 ellipsoid using a transverse mercator projection with a central meridian of -123 degrees". (http://spatialreference.org/ref/epsg/32610/)
In any case: No difference, just like everyone else is saying, except in the very nitty gritty details of how they are used.
TLDR: No one says "the EPSG 4326 ellipsoid" as part of a coordinate system definition.
As far as I can see the two are the same thing. Our definition (in FME) is:
Coordinate System Parameters
DESC_NM: World Geodetic System of 1984
DESC_NM: World Geodetic System of 1984, GEM 10C
OGC WKT Description GEOGCS["WGS84 datum, Latitude-Longitude; Degrees", DATUM["WGS_1984", SPHEROID["World Geodetic System of 1984, GEM 10C",6378137,298.257223563, AUTHORITY["EPSG","7030"]], AUTHORITY["EPSG","6326"]], PRIMEM["Greenwich",0], UNIT["degree",0.0174532925199433], AUTHORITY["EPSG","4326"]]
ESRI WKT Description GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]]