Apparently there is a compatibility matrix which lets the engine know if the cast preserves the order of the data between the 2 data types.
So Cast ( intcol as small int) and cast( datecol as datetime) will use an index, but I dont think it will log a missing index if one does not exist.(Could be mistaken).
Only cast uses it as far as I know, and not convert.
I would use it because it is more readable to do the below
cast(startdatetime as date) = cast(getdate() as date)
than the whole startdatetime between (dateadd(datepart(())) and dateadd(datepart blah blah -3 millesecond+1day) contrivance to get all events for today.