HARD vs SOFT assertions were never very well defined or supported. Currently they just imply a level of functionality that isn't present; it's better to remove them instead of expending the effort at this point.
The recv/send functions (and the assertions) were only tested under 32bit systems. They need relaxing for 64bit.