it skips after the line If Not Intersect (Target, Range("B4")) Is Nothing, to the "End If" when I make a manual update to cell B4
that is not possible. if you believe it to be the case please provide a workbook

And do I need to use an intersect when I only want to check if a single cell's value has been updated or is there a better way??
that is the best way-why don't you want to use it?

if I'm using a worksheet_change event, does it calculate the entire workbook after running my vba code?
only if you do something in the code to cause it or the change you made triggers a recalculation anyway. a change event does not of itself inherently trigger a recalculation