I admit my programming is a bit rusty, but why some functions in the source have all the logic in them directly and some just do some argument mapping and pass on to _ex() versions?
Case in point, view3d_view.c,
ED_view3d_smooth_view_ex()
ED_view3d_smooth_view()