¿Downcasting en Swift con as y como?

¿Cuál es la diferencia entre estos dos fragmentos de código?

let cell = tableView.dequeueReusableCellWithIdentifier("cellId") as UITableViewCell?
// vs
let cell = tableView.dequeueReusableCellWithIdentifier("cellId") as? UITableViewCell

¿No es el resultado exactamente el mismo?

Respuestas a la pregunta(3)

Su respuesta a la pregunta